在给定任意全文搜索(FTS)查询的情况下,需要列出与查询匹配的结果文档中的关键字。例如,test or rest
生成3个文档的列表,其中第一个仅包含test
,第二个包含两个单词,第三个仅包含rest
。解释应该产生3个列表:(test
)(test
,rest
)(rest
),以便最终用户理解文档出现在查询输出中的原因。< / p>
问题与点击突出显示有关,我已经探索了现有的解决方案(例如http://www.codeproject.com/Articles/623815/Hit-Highlight-for-SQL-Server-Full-Text-Search或How to do hit-highlighting of results from a SQL Server full-text query)。这些解决方案依赖于使用硬编码sys.dm_fts_parser
的{{1}}来生成搜索词的所有排列。
特别是,依赖于FORMSOF (INFLECTIONAL
的解决方案似乎偶然发现了前缀搜索。例如,给定2个查询sys.dm_fts_parser
和test
"test*"
会产生不同的结果集,但select content from table where contains(content, @query, language 1033)
会产生2个完全相同的记录集,但这并不能提供任何线索。为什么查询输出不同。
任何人都有类似案件的经历吗?