【发布时间】:2017-09-07 20:22:03
【问题描述】:
我正在苦苦思索如何让 Microsoft SQL 全文搜索来搜索其中包含断字符的单词,例如 A-123、AB-123 或 ABC-123。开箱即用的英语单词断路器想要在破折号处拆分这些单词。其中带有破折号的单词是已知的集合。我遇到了this article,它讨论了一个可能的解决方案,但我似乎无法让它发挥作用。我正在运行带有 SP 1 的 SQL 2014 Enterprise Edition。我创建了一个包含以下内容的文本文件: A-123 AB-123 ABC-123
然后我使用 exec sp_fulltext_service 'restart_all_fdhosts' 重新启动了全文服务。
然后我通过执行 select [display_term],* from sys.dm_fts_parser('ABC-123', 1033,0,0) 来测试解决方案是否有效。如果工作正常,我希望它返回 1 行(与 abc-123 完全匹配),但它仍然返回 4 行(abc-123、abc、123、nn123)
上一篇文章提到了必须复制的文件和必须更改的设置。我的 Windows 10 工作站只有 NlsData0009.dll 和 NlsLexicons0009.dll(我确实将它们复制到 C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn)。 NlsGrammars0009.dlll 不在我的工作站上。感觉这些说明对于 SQL 2008 来说太具体了。
假设我可以让自定义词典工作,那么我需要弄清楚如何将不同的自定义词典应用到每个数据库。有多个数据库的 sql 服务器,每个数据库都需要自己的自定义字典副本。
【问题讨论】:
标签: sql-server full-text-search