Результаты поиска в полнотекстовом поиске SQL Server 2012 - PullRequest
2 голосов
/ 27 сентября 2019

Я хотел бы знать, есть ли способ получить слова, которые были сопоставлены из полнотекстового поиска, используя FREETEXT.

Например:

SELECT * 
FROM table 
WHERE FREETEXT(column_name, 'search term')

Iхотелось бы видеть, какие части текста в column_name вызвали совпадение с «поисковым термином», поскольку FREETEXT возвращает записи, в которых искомый столбец - это больше, чем просто совпадение с шаблоном поискового запроса, как указано здесь в разделе FREETEXT / FREETEXTTABLE.

Я знаю, что использование FREETEXTTABLE может вернуть ранг и ключ, но мне нужно знать, какие именно термины вызвали совпадение, если это возможно.

Спасибо

Ответы [ 3 ]

0 голосов
/ 30 сентября 2019

Вы можете попробовать LIKE

SELECT * 
FROM table 
WHERE column_name like ('%search term%')
0 голосов
/ 30 сентября 2019

Disclaimer, I haven't done this -- I'm going from documentation. Я не уверен, что это даст вам то, что вы хотите, но вы можете увидеть, как поиск токенизируется: с здесь

После того, как вы примените данныйкомбинация средств разбиения по словам, тезауруса и стоп-листа в запросе. Вы можете увидеть, как Полнотекстовый поиск маркирует результаты, используя динамическое административное представление sys.dm_fts_parser.Для получения дополнительной информации см. sys.dm_fts_parser (Transact-SQL) .

Я думаю, если вы хотите знать, какая часть (токен) вызвала совпадение - выСкорее всего, потребуется запустить поиск по отдельным токенам и сравнить наборы результатов, чтобы увидеть, какие токены или токены (условия поиска) вызвали данное совпадение.

0 голосов
/ 28 сентября 2019

Если вы хотите выполнить полнотекстовый поиск другим способом, используйте множество методов, немногие из которых написаны ниже

Выбрать * из таблицы, в которой содержится Column_Name ('некоторая вещь')

Выбрать * из таблицыГде существует Column_Name («какая-то вещь»)

Выбрать * из таблицы Где Column_Name в («какая-то вещь»)

Выбрать * из таблицы, где Column_Name = (некоторые) («какая-то вещь»)

...