0

我在我的 CMS 中的几个表上使用 MSSQL 的全文索引,不幸的是我被 SQL Server 2000 困住了。我正在使用 freetexttable 连接查询索引并且结果非常好,但我们可能有一些独特的术语似乎不是词干的搜索查询。例如,使用术语“smartbar”的查询返回几行,但使用“smartbars”的查询返回不同的、仅部分重叠的结果集。

如果我正确理解词干概念,我会假设第一个查询将包含第二个查询中的所有行,但事实并非如此。

查看 MSDN 的联机丛书,此页面在 freetext_string 参数注释中提到了词干,但此页面没有。由此我假设SQL Server 2000 不会阻止 freetexttable 查询中的单词。这是一个正确的假设吗?有什么方法可以鼓励或使 SQL Server 2000 停止运行?作为后备,我可能会使用同义词库文件对我们的独特术语进行重要查询,但宁愿让 SQL Server 完成大部分工作。

作为后续,如果有人有关于 SQL Server 2000 全文查询的良好资源的链接,我将不胜感激。MSDN 信息很有用,但我想要一些更深入的信息,但找不到太多。

4

1 回答 1

1

我想你正在寻找的是有点不同。您想搜索单词的所有形式。它与词干提取有一些关系,但在 MS SQL Server 全文搜索中,您得到的结果有点不同。您需要明确指示服务器搜索单词的所有形式,而不仅仅是单词本身。

以下是如何执行此操作:

SELECT <select list> 
FROM [YourTable] 
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)')

MSDN上有一篇关于这个主题的文章。根据其他资源,此功能在 SQL 2k 中也可用(但我手头没有要验证的实例)。

于 2009-08-05T15:20:12.290 回答