如何在 MS-SQL FreeText 搜索中处理单字符搜索词?
我在使用当前在 SQL 2000 服务器上运行的 FreeText 搜索时遇到问题。
在包含公司名称的大约 130 万行的表中,我尝试使用 FreeText 查询。然而,由于 SQL Server 在构建索引时会去除特殊字符和单个字符,因此我们的代码在提交查询时也会执行相同的操作。
例如,搜索“Texas A & Texas”。 M' 最终只查询 'Texas',它返回大量不相关的记录。
处理此类搜索查询的最佳实践是什么?通过升级到较新版本的 SQL Server 可以解决此问题吗?
此时,像 Lucene 这样的第三方索引引擎不是一个选择,即使它可以解决问题,但我不确定。
I am having a problem with a FreeText search, currently running on a SQL 2000 server.
In a table of approximately 1.3 million rows which contain company names, I am attempting to use a FreeText query. However since SQL Server strips out special characters and single characters when building its index, our code does the same when submitting the query.
For example searches like 'Texas A & M' end up only querying for 'Texas' which returns a ton of irrelevant records.
What's the best-practice for handling these sorts of search queries? Would this problem be rectified by upgrading to a newer version of SQL Server?
At this point a third-party indexing engine like Lucene is not an option, even if it would fix the problem, which I am not sure of.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以尝试使用单个字符通配符“_”,类似于:
或
You can try using a single character wildcard '_' similar to:
or
您可以检查一下SQL Server 2005中的改进是否可以解决您的问题:
SQL Server 2005 全文搜索:内部结构和增强< /a>,特别是关于 新中的干扰词面向开发人员的功能。
You may check if improvements of in SQL Server 2005 can solve your problem:
SQL Server 2005 Full-Text Search: Internals and Enhancements, in particular about Noise Words in New Features for the Developer.
如果您要搜索公司名称而不是长文本段落,为什么不直接使用 LIKE?
if you are searching company names and not long passages of text, why not just use LIKE?