在 SQL 2005 中使用全文搜索来搜索数字字符串
我正在使用 SQL 全文搜索,并且有一个使用 FREETEXTTABLE 函数的存储过程。
这一切都很好,但是,我注意到,如果我搜索“第 19 章”之类的内容,则 19 似乎被丢弃了,并且搜索仅搜索“第 19 章”。
另外,如果我只搜索“19”,我不会得到任何结果。我知道我索引的列在多行中包含“19”。
这是预期的行为吗?不索引数字?
如果是这样,那么我想我将不得不忍受它,但如果不是,如果有人认为我做错了什么,我会很乐意发布任何 T-SQL。
谢谢。
PS 我已经用谷歌搜索过这个,但没有发现任何关于搜索数字将进行全文搜索的内容。
I'm using the SQL Full-Text Search and have a stored proceedure that uses the FREETEXTTABLE function.
This all works great, however, I have noticed that if I search for something such as 'Chapter 19' the 19 seems as if it is thrown away and the search only searches on 'Chapter'.
Also if I search for just '19' I get no results. I know the columns I have indexed contain a '19' in multiple rows.
Is this the intended behaviour? To not index numerics?
If so, then I suppose I'll have to live with it, but if not I'll be happy to post any T-SQL if anyone thinks I'm doing anything wrong.
Thanks.
P.S. I've googled this and have found nothing on searching numerics will full-text search.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最终找到了这背后的原因。
数字在 SQL Server 中被视为干扰词。您可以通过删除适合您的语言的噪声文件中的数字条目来允许搜索数字。
噪声文件位于 SQL Server 安装的 FTData 目录中。
英文噪音文件为:noiseENU.txt & noiseENG.txt
希望这对某人有帮助。
I eventually found the reason behind this.
Numerics are considered as noise words in SQL server. You can allow searching on numerics by removing the numeric entries in the appropriate noise file for your language.
Noise files are found at in the FTData directoraty of your SQL Server install.
The english noise files are: noiseENU.txt & noiseENG.txt
Hope this helps someone.