Синтаксическая ошибка полнотекстового поиска

Я создал полнотекстовый поиск с каталогом и индексом, и запрос «Содержит» отлично работает, когда я запускаю запрос с одним словом, как показано ниже.

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, 'gift')

он возвращает «тестовый подарок»

У меня есть только одна строка в таблице, и данные в столбце «Имя» выглядят так: «тестовый подарок».

но когда я запускаю запрос conaints с помощью этого оператора:

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, 'test gift')

Он выдает ошибку: Синтаксическая ошибка рядом с «подарком» в условии полнотекстового поиска «тестовый подарок».

Я думал, что contains может запрашивать фразы и несколько слов, которые совпадают и звучат одинаково?


person user1186050    schedule 08.01.2015    source источник


Ответы (1)


Вам нужны двойные кавычки, чтобы управлять этим пробелом, имея в виду, что вы ищете всю строку, а не слова строки. Следующий запрос найдет «тестовый подарок», но не «тестовый подарок».

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, '"test gift"')

или, если вы хотите искать слова по отдельности, это будет

SELECT Name
FROM dbo.Gifts
WHERE CONTAINS(Name, '"test" AND "gift"')

этот второй должен дать вам поле с «тестом на подарок», а также «тест на подарок».

person Ryan B.    schedule 09.01.2015