如何在MS-SQL FreeText搜索中处理单字符搜索术语?

时间:2010-02-23 17:10:56

标签: sql-server tsql sql-server-2000 freetext

我遇到了FreeText搜索问题,目前正在SQL 2000服务器上运行。

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

例如'Texas A& A'等搜索M'最终只查询“德克萨斯”,它返回了大量不相关的记录。

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

此时,像Lucene这样的第三方索引引擎不是一个选项,即使它能解决问题,我也不确定。

3 个答案:

答案 0 :(得分:0)

您可以检查SQL Server 2005中的改进是否可以解决您的问题: SQL Server 2005 Full-Text Search: Internals and Enhancements,特别是New Features for the Developer中的噪音词。

答案 1 :(得分:0)

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

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'

答案 2 :(得分:0)

您可以尝试使用类似于:

的单个字符通配符“_”
WHERE myColumn like 'Texas_A_&_M'

WHERE myColumn like 'Texas%A_&_M'