Показать подходящие ключевые слова для каждого документа, возвращенного из полнотекстового запроса SQL Server
Учитывая произвольный запрос полнотекстового поиска (FTS), необходимо перечислить ключевые слова из результирующего документа, которые соответствуют запросу. Например, test or rest
выдает список из 3-х документов, где 1-й содержит только test
2-й содержит оба слова, а 3-й имеет только 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 абсолютно идентичных набора записей, что не дает никакого представления о том, почему результаты запроса различны.
У кого-нибудь есть опыт работы с подобными случаями?