0

给定一个任意的全文搜索 (FTS) 查询,需要从结果文档中列出与查询匹配的关键字。例如,test or rest生成 3 个文档的列表,其中第一个仅包含test,第二个包含两个单词,第三个仅包含rest。解释应该产生 3 个列表: ( test) ( test, rest) ( rest) 以便最终用户了解文档出现在查询输出中的原因。

这个问题与命中突出显示有关,我已经探索了现有的解决方案(例如http://www.codeproject.com/Articles/623815/Hit-Highlight-for-SQL-Server-Full-Text-Search如何做来自 SQL Server 全文查询的结果的高亮显示)。这些解决方案依赖于sys.dm_fts_parser硬编码FORMSOF (INFLECTIONAL来产生搜索词的所有排列。

特别是,依赖的解决方案sys.dm_fts_parser似乎偶然发现了前缀搜索。例如,给定 2 个查询test"test*" select content from table where contains(content, @query, language 1033)生成不同的结果集,但会select * from sys.dm_fts_parser(@query, 1033, 0, 1)生成 2 个完全相同的记录集,这没有提供任何关于查询输出为何不同的线索。

有人有类似案例的经验吗?

4

0 回答 0