sql - 如何通过词库在 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 分型*”的行。
它无法获取以“基因指纹*”的同义词词开头的行。
我不想在项目中编写静态代码,因为将来会有很多词库。
我搜索了互联网,但找不到任何有效的答案。
如何仅通过查询来获得所需的记录?
解决方案
推荐阅读
- database - 如何授予postgres中所有数据库的所有权限
- spring - Spring 4.3.25.RELEASE OAuth2 配置问题
- entity-framework - 实体框架 Linq2Db 翻译
- 3d - 如何压缩这种类型的 gltf
- python - Slack:是否可以使用从 slack 到另一个系统的用户输入来启动 API 调用?
- json - requestHeaders 是做什么用的。设置内容类型()?
- rust - 向 json 添加尾随换行符
- python - 通过占位符在 TensorBoard 中显示 matplotlib 图
- c# - VSTO 的 Button.GetImage 的正确签名
- python-3.x - 使用来自 Selenium 的 find_element_by_name 获取错误消息