全文搜索没有找到一些前缀

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的邻近搜索功能.

Mat*_*her 1

问题出在分词器上,它不包含短语 id,因此第二个查询被翻译成等价的(伪 SQL)

\n\n
SELECT * 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\n
SELECT * 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