【问题标题】:FTS: Searching across multiple fields 'intelligently'FTS:“智能”地搜索多个领域
【发布时间】:2009-12-07 18:08:18
【问题描述】:

我有一个使用 FTS(全文搜索)的 SP。我想要跨多个字段进行搜索,根据我分配的权重“智能地”对结果进行排名。

考虑对从表中获取数据的视图进行搜索:书籍、作者和流派。

现在,我希望搜索者能够做到:“Ludlum Fiction”、“Robert Ludlum Bourne”、“Bourne Ludlum”等。

不幸的是,我目前能够做到这一点的唯一方法是:http://pastebin.com/fdce11ff

这很糟糕,因为我手动分解了搜索字符串。我知道我这样做是完全错误的,但无法找出在 FTS 中搜索多个字段的正确方法。有人可以帮忙吗?

【问题讨论】:

  • 是什么让你觉得你现在的做法是错误的?
  • 好吧,我必须自己编写排名算法,并且会假设 FTS 会有一个更优化的算法?另外,我没有得到想要的结果。例如,如果您知道我的意思,搜索“Al Pacino”会得到“Al Author”的结果“Al Something”,而不是“Some guy”的“Al Pacino”。这是因为“Al”这个词在书名和作者字段中重复出现。

标签: sql sql-server sql-server-2005 stored-procedures full-text-search


【解决方案1】:

在您的实例上;你的字典设置如何?您可能希望将您的作者添加到您的字典中,这可能会解决 al pacino 问题(还要确保您的作者不是干扰词。)

使用vector type 搜索可能会从深度搜索中获得更好的结果。我们已经将我们的用户(内部员工)推向了谷歌要求的布尔搜索的另一种方式。例如,罗伯特·卢德卢姆和伯恩。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多