Как реализовать полнотекстовый поиск по нескольким столбцам на сервере SQL?

Я пытаюсь реализовать полнотекстовый поиск по двум столбцам, для которых я создал представление: VendorName, ProductName. У меня работает полнотекстовый индекс и т. Д., Но фактический запрос вызывает у меня некоторые проблемы.

Я хочу, чтобы пользователи могли использовать некоторые стандартные соглашения о поиске, ИЛИ ИЛИ НЕТ и группировать термины по (), что хорошо, но я хочу применить поиск по обоим столбцам, например, если бы мне нужно было выполнить запрос, такой как:

SELECT * FROM vw_Search 
WHERE CONTAINS((VendorName, ProductName), "Apple AND iTunes")

Кажется, что он применяет запрос к каждому столбцу индивидуально, то есть проверяет имя поставщика для обоих терминов, а затем проверяет название продукта для обоих терминов, которые не будут совпадать, если поставщик не был назван «Apple iTunes».

Если я изменю запрос на:

SELECT * FROM vw_Search 
WHERE CONTAINS(VendorName, "Apple OR iTunes") 
AND CONTAINS(ProductName, "Apple OR iTunes")

затем он работает, но нарушает другие поисковые запросы (например, поиск только apple), и для пользователя, пишущего запрос, это не имеет особого смысла, поскольку то, что они могут написать, - это AND, но для работы требуется OR.

Я хочу, чтобы он возвращал, если между этими двумя терминами был действительный поисковый термин, чтобы он соответствовал всем поставщикам с именем apple, например, названием продукта itunes.

Должен ли я создать отдельное поле в представлении, которое объединяет поля Vendor и Product и выполняет первый запрос для этого нового поля, или я что-то упускаю?

Помимо этого кто-нибудь знает о существующем методе проверки запросов?

Ответы на вопрос(1)

Ваш ответ на вопрос