我遇到了FreeText搜索问题,目前正在SQL 2000服务器上运行。
在包含公司名称的大约130万行的表中,我试图使用FreeText查询。但是,由于SQL Server在构建索引时会删除特殊字符和单个字符,因此我们的代码在提交查询时也会这样做。
例如'Texas A& A'等搜索M'最终只查询“德克萨斯”,它返回了大量不相关的记录。
处理这些搜索查询的最佳做法是什么?是否可以通过升级到较新版本的SQL Server来解决此问题?
此时,像Lucene这样的第三方索引引擎不是一个选项,即使它能解决问题,我也不确定。
答案 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'