首页 > 解决方案 > 在 SQL Server 2012 和 SQL Server 2016 中使用全文索引搜索检索的数据的差异

问题描述

SQL Server 2012 中的全文搜索存在问题,但它在 SQL Server 2016 中运行良好。

我有以下示例图像显示类似查询的输出,该查询在 2016 年返回带下划线的数据,而在其他屏幕中它不返回任何带下划线的数据,并且在 SQL Server 2012 中。

在 SQL 2012 中 在 SQL 2012 中,它不显示具有全文索引搜索的数据

在 SQL 2016 中 在 SQL 2016 中,它使用全文索引搜索显示数据

任何人都可以为此建议解决方案或建议解决此问题的任何参考,以及为什么在这些 SQL 版本之间出现这种行为的解释。

标签: sqlsql-serversql-server-2012full-text-searchfull-text-indexing

解决方案


在使用全文搜索找到此问题的解决方案后,它被确定为工作中断 .dll 是在不同版本的 SQL Server 上构建的,具有某些特殊字符作为分词器。

我们无法查看分词器列表来确认这一点,因为它是基于 .dll 的架构构建的,我们只能获取指示 .dll 文件位置的路径。要手动将字符添加到此分词器 .dll 中,可能会非常复杂且耗时,并且必须对 .dll 进行逆向工程,并尝试将上述“下划线”添加为分词器并重新创建 .dll 文件。 dll。

https://dba.stackexchange.com/questions/50366/sql-server-2012-full-text-search-break-word-underscore

参考上述 URL 的部分修复,他们能够通过将语言更改为中文 (1028) 来获得结果,但我们不能这样做,因为它可能会产生与使用全文搜索的同义词相关的其他问题。


推荐阅读