Запрос полнотекстового поиска SQL?
Я пытаюсь реализовать полнотекстовый поиск по таблице входа в систему, и когда я выполняю соответствующий запрос, то следующие мои наблюдения:
Когда я выполняю следующий запрос, реализующий полнотекстовый поиск, он может извлечь приблизительно 1665 строк
select * from t_user where contains(LOGIN_ID, '"*david*" )
но при реализации аналогичного запроса без полнотекстового поиска с использованием следующего он возвращает 1872 строки
select * from T_USER where LOGIN_ID like '%david%'
Просматривая данные в моей таблице, я пришел к выводу, что, когда я использую ключевое слово contains, он игнорирует строку с идентификатором входа в систему, например, DDAVID_D, или я могу сказать, что возвращаются только те строки, в которых слова Давида разделены, как DAVID_FRANK.,
Есть ли способ поиска слова между словами (например, поиск Дэвида между DDavidFrank или я могу искать между длинными непрерывными словами строку Давида, как в DDAVIDFRANK), чтобы эффективно реализовать полнотекстовый поиск?
1 ответ
Попробуйте этот запрос:
SELECT * from t_user WHERE CONTAINS(LOGIN_ID, '"david"' )
Пытаться
WHERE FREETEXT(LOGIN_ID, 'david') OR CONTAINS(LOGIN_ID, 'david')"