我在 SQL Server 中全文搜索使用的排名存在一些问题。
假设用户搜索两个词“foo bar”。我们假设用户打算进行 OR 搜索,所以我们将“foo OR bar”传递给我们的 CONTAINSTABLE 调用。我们发现,包含 10 次“foo”但不包含“bar”的行的排名将比同时包含“foo”和“bar”的行高得多。我们希望具有这两个术语的行优先于仅具有一个术语的行多次。关于如何实现这一目标的任何建议?
我找到了与 RANKMETHOD 修饰符相关的文档,但这似乎仅适用于 SQL Enterprise 搜索,并且不适用于常规 SQL Server 2005 安装。我们也可以切换到 Lucene.Net,但我希望验证它有更好的可用排名。我们也可能会进行多次搜索并合并结果,但随着搜索单词数量的增加,这似乎是不可取的。