1

我在使用当前在 SQL 2000 服务器上运行的 FreeText 搜索时遇到问题。

在包含公司名称的大约 130 万行的表中,我尝试使用 FreeText 查询。但是,由于 SQL Server 在构建其索引时会去除特殊字符和单个字符,因此我们的代码在提交查询时也会这样做。

例如,像“Texas A & M”这样的搜索最终只查询“Texas”,它会返回大量不相关的记录。

处理这类搜索查询的最佳做法是什么?升级到较新版本的 SQL Server 是否可以解决此问题?

在这一点上,像 Lucene 这样的第三方索引引擎不是一个选择,即使它可以解决问题,我不确定。

4

3 回答 3

0

您可以检查 SQL Server 2005 中的改进是否可以解决您的问题: SQL Server 2005 Full-Text Search: Internals and Enhancements,特别是关于开发人员新功能中的噪声词。

于 2010-02-23T17:30:41.920 回答
0

如果您正在搜索公司名称而不是长文本段落,为什么不使用 LIKE?

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'
于 2010-02-23T18:18:02.987 回答
0

您可以尝试使用类似于以下内容的单字符通配符“_”:

WHERE myColumn like 'Texas_A_&_M'

或者

WHERE myColumn like 'Texas%A_&_M' 
于 2010-02-23T18:32:08.513 回答