Как я могу использовать `contains` в oracle для быстрого полнотекстового поиска текста, но я хочу, чтобы он работал как`like` %texthere%
Можно ли получить функциональность так же, как like
Я хочу это, потому что у меня есть 6 миллионов записей для поиска.
У меня есть запись в таблице
himanshux
himanshhggge jshsd
select * from user_detail where fistname like %hh%
select * from user_detail where CONTAINS(fistname,'hh',1) > 0
а также в чем разница?
CONTAINS(fistname,'hh',1) > 0
а также CONTAINS(fistname,'%hh%',1) > 0
1 ответ
Решение
Вы можете обратиться к этому вопросу здесь:
Разница в критериях поиска между Like и Contains() в Oracle
Ваш синтаксис для использования CONTAINS() работает правильно в первом примере
Ваш второй вопрос, в чем разница между:
CONTAINS(fistname,'hh',1) > 0 and CONTAINS(fistname,'%hh%',1) > 0
Разница первая CONTAINS(fistname,'hh',1) > 0
ищет независимое слово "чч"
Во-вторых CONTAINS(fistname,'%hh%',1) > 0
он ищет любой экземпляр строки "hh" независимо от того, что находится до или после него.