首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库搜索引擎.根据特定相关性规则按相关性进行排序

数据库搜索引擎.根据特定相关性规则按相关性进行排序
EN

Stack Overflow用户
提问于 2010-10-19 07:57:06
回答 1查看 572关注 0票数 1

我刚刚得到了一个新的搜索功能的要求,为我们的网站。它们是图书出版商的网站,所以这是我们在这里经营的基本领域。数据存储在启用全文的Microsoft 2005数据库服务器(SP3)中。

现在,需求声明搜索可以在三个方面完成:书名、作者姓名和书籍文本。这本身就很容易通过三个单独的查询来完成。然而,还有更多。要求指出,搜索结果应大致按以下顺序返回:

  • 全职称比赛
  • 作者全名匹配
  • 部分标题匹配
  • 完整作者姓氏匹配
  • 部分作者姓匹配
  • 部分作者全名匹配
  • 图书文本匹配

此外,还有次要要求:

  • 出版商本身的书名应高于相邻出版商的书名(同一数据库中有十几家出版商的图书)。
  • 当找到一个标题的完全匹配时,应该显示来自同一作者的其他书籍(同样,同一出版商的书名优先于另一个作者--一个作者可以与多个出版商一起出版)。

很多这样的规则。

所以,假设你有一本书“约翰逊”,作者是皮特·约翰逊(或者别的什么)。然后,搜索查询'john‘应该返回以下(ish):

  • 约翰逊(书)(部分标题匹配)
  • 皮特·约翰逊(部分姓匹配)

搜索查询'Johnson':

  • 约翰逊(书)(全名比赛)
  • Johnson (书)(部分标题匹配)(省略,已在结果中)
  • 皮特·约翰逊(作者)(全称作者姓匹配)
  • 皮特·约翰逊(作者)(部分作者姓匹配)(省略)
  • 皮特·约翰逊(作者)(部分作者全名匹配)(省略)
  • Johnson (图书)(图书文本匹配)(省略)

...Anyways。这基本上就是要求,我只想把它输入出来。现在,想问几个问题:

  • 有关于这个特定主题的书或文章可以给我指点吗?
  • 如何才能最好地实现这一目标?这是在一组基本查询中完成的(针对每个搜索需求的单独查询,删除重复结果并合并结果的后处理),还是可以在一个查询中完成?
  • 或者,我是否需要编写一个应用程序来索引表并创建自己的索引等等,然后依次进行搜索查询?

我有点想听听这里的想法和建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-19 08:41:57

康廷斯费特克特函数--它们返回秩列,即“相关性排序”。也许这些函数加上一些由非文本列进行的复杂排序将完成这项工作。

如果您决定在应用程序中实现FTS,请查看第三方解决方案。卢塞尼 (或Lucene.NET)可能一开始就很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3966300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档