Полнотекстовый поиск на SQL Server 2008 - PullRequest
2 голосов
/ 16 июля 2010

Предположим, у меня есть таблица с полнотекстовым индексом для столбца Имя, фамилия, адрес электронной почты.

В таблице есть строка, такая как Имя, Фамилия, Электронная почта, ABC DEF TAN hongtan@abc.com

Затем я выпустил следующий sql:

SELECT *  FROM Person WHERE CONTAINS(*, 'hong');

Я получил много строк, включая строку выше.

Если я выпустил следующий sql:

SELECT *  FROM Person WHERE CONTAINS(*, 'hongtan');
SELECT *  FROM Person WHERE CONTAINS(*, 'hongtan@abc.com');

Я получил только одну строку, включенную выше строки.

Если я выпустил следующий sql:

SELECT *  FROM Person WHERE CONTAINS(*, 'hongt');
SELECT *  FROM Person WHERE CONTAINS(*, 'hongta');

Я ничего не получу.Почему за это дело ничего не попало?Я должен получить хотя бы один ряд.

1 Ответ

2 голосов
/ 16 июля 2010

Убедитесь, что вы заключили в кавычки слово и используете подстановочный знак "*".

select * from Person where contains(*, '"hongt*"')

Ваш предыдущий поиск работал без подстановочного знака, поскольку он нашел целые слова;«hong» должно быть словом или фамилией, а «hongtan@abc.com» - фактически 3 слова в соответствии с индексацией.

Я узнал все о полнотекстовых индексах только сейчас, спасибо.:)

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