首页 > 解决方案 > 如何通过词库在 SQL Server 中进行全文搜索得到想要的结果?

问题描述

我正在使用 SQL Server 2019。我在 SQL Server 全文搜索中以语言 XML 定义词库。

<XML ID="Microsoft Search Thesaurus">
<thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
    <expansion>
        <sub>DNA typing</sub>
        <sub>genetic fingerprinting</sub>
    </expansion>
</thesaurus>
</XML>

由于词库和前缀形式 (*) 不能在包含语句中使用,例如

SELECT * 
FROM new_framework_text ft 
WHERE CONTAINS (ft.text, N'FORMSOF (THESAURUS,"DNA typing*")')

通常,我使用此查询来获取结果,但实际上并没有返回所需的结果。

SELECT * 
FROM new_framework_text ft 
WHERE CONTAINS (ft.text, N'FORMSOF (THESAURUS, "DNA typing") OR "DNA typing*"')

上面,查询将返回带有“DNA 分型”、“基因指纹”和“DNA 分型*”的行。

它无法获取以“基因指纹*”的同义词词开头的行。

我不想在项目中编写静态代码,因为将来会有很多词库。

我搜索了互联网,但找不到任何有效的答案。

如何仅通过查询来获得所需的记录?

标签: sqlfull-text-searchfull-text-indexingsql-server-2019thesaurus

解决方案


推荐阅读