Запрос полнотекстового поиска SQL? - PullRequest
2 голосов
/ 13 октября 2011

Я пытаюсь реализовать полнотекстовый поиск по таблице входа в систему, и когда я выполняю соответствующий запрос, то мои замечания следующие:

Когда я выполняю следующий запрос, реализующий полнотекстовый поиск, он может получить приблизительные 1665 строк

select * from t_user where contains(LOGIN_ID, '"*david*" )

но при реализации аналогичного запроса без полнотекстового поиска с использованием следующего возвращается 1872 строки

select * from T_USER where LOGIN_ID like '%david%'

Просматривая данные в моей таблице, я пришел к выводу, что когда я использую ключевое слово contains, он игнорирует строку с идентификатором входа, например DDAVID_D * ​​1014 *, или я могу сказать, что он только возвращает строки, в которых слова Давида разделены, как DAVID_FRANK .

Есть ли способ поиска слова между словами (например, поиск Дэвида между DDavidFrank или я могу искать между длинными непрерывными словами строку Давида, как в DDAVIDFRANK) , чтобы реализовать полнотекстовый поиск эффективно?

1 Ответ

0 голосов
/ 13 октября 2011

1001 * попробовать *

WHERE FREETEXT(LOGIN_ID, 'david') OR CONTAINS(LOGIN_ID, 'david')"
...