как поиск в свободном тексте sql - PullRequest
0 голосов
/ 15 ноября 2011

может быть, это глупый вопрос.

Как мне добиться в sql "типа"% test% ", используя свободный текст?

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

В моем случае у меня есть:

select * from ServiceOfferResultIndexed where contains(FirstName,'test') 

, что дает мне 18

rows.select * from ServiceOfferResultIndexed where FirstName like '%test%'

, что дает мне 229 строк.

спасибо за помощь.

БД - это MS SQL 2005. Я думаю, что она поддерживает * как постфикс. Это говорит о том, что если я предоставлю слово «* test», * будет считаться словом, а не подстановочным знаком. Тест становится следующим словом.

Contains будет поддерживать только «test *», где он ищет все фразы, начинающиеся с «test», за которыми следует любой другой символ.

1 Ответ

2 голосов
/ 15 ноября 2011

Это два разных выражения. LIKE '%test%' найдет любую строку, где эти четыре символа вместе (например, отзыв или участник), где contains будет соответствовать словам.

Я не знаю, какой полнотекстовый движок вы используете, но обычно подстановочные знаки поддерживаются. Например, что произойдет, если вы используете где contains(firstame, '*test*')? Вам нужно будет обратиться к документации вашего конкретного dbms для подстановочных знаков в свободном текстовом поиске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...