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

发布于 2024-08-22 14:26:21 字数 333 浏览 5 评论 0原文

我在使用当前在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

余厌 2024-08-29 14:26:21

您可以尝试使用单个字符通配符“_”,类似于:

WHERE myColumn like 'Texas_A_&_M'

WHERE myColumn like 'Texas%A_&_M' 

You can try using a single character wildcard '_' similar to:

WHERE myColumn like 'Texas_A_&_M'

or

WHERE myColumn like 'Texas%A_&_M' 
来世叙缘 2024-08-29 14:26:21

您可以检查一下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.

陈年往事 2024-08-29 14:26:21

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

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

if you are searching company names and not long passages of text, why not just use LIKE?

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文