Mat*_*her 9 sql-server full-text-search sql-server-2014
我正在使用SQL Server 2014的全文搜索功能来查找以给定前缀开头的数据库中的文档.但是,有些查询不会产生任何结果,而应该会产生任何结果.
请看以下示例:
SELECT * FROM [Profile].[DocumentView] WHERE CONTAINS(Content, '"Friedenseins*"')
(24 row(s) affected)
SELECT * FROM [Profile].[DocumentView] WHERE CONTAINS(Content, '"Friedensein*"')
(0 row(s) affected)
SELECT * FROM [Profile].[DocumentView] WHERE CONTAINS(Content, '"Friedensei*"')
(29 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
我理解第一个和第三个结果,但不是第二个结果.关闭全文索引的停止列表.分词器的语言设置为德语.
编辑:
使用的建议FREETEXT
不是这个特定情况的解决方案,因为我需要CONTAINS
的邻近搜索功能.
问题出在分词器上,它不包含短语 id,因此第二个查询被翻译成等价的(伪 SQL)
\n\nSELECT * FROM [Profile].[DocumentView] WHERE Content LIKE\n ((friedensein* OR frieden*) in Position 1) AND (sein* in Position 2)\n
Run Code Online (Sandbox Code Playgroud)\n\n但是“Friedenseins\xc3\xa4tze”在位置 2 中有“eins\xc3\xa4tze”。使用正确的短语 id,查询将变为
\n\nSELECT * FROM [Profile].[DocumentView] WHERE Content LIKE\n ((friedensein* in Position 1) OR ((frieden* in Position 1) AND (sein* in Position 2)))\n
Run Code Online (Sandbox Code Playgroud)\n\n办公室团队已获悉。当有新信息可用时,连接线程将被更新。
\n\n更新:该问题已解决为“无法修复”。
\n 归档时间: |
|
查看次数: |
1268 次 |
最近记录: |