Как Вы реализуете полнотекстовый поиск по нескольким столбцам в 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")

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

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

Я должен создать отдельное поле в представлении, которое связывает Поставщика и поля продукта и выполняет первый запрос на том новом поле или является там чем-то, что я пропускаю?

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

7
задан Trotts 11 May 2010 в 13:45
поделиться

1 ответ

В ранних версиях SQL Server запросы сопоставляли несколько столбцов.

Однако это считалось ошибкой.

Для сопоставления по нескольким столбцам необходимо объединить их в вычисляемый столбец и создать индекс по этому столбцу.

7
ответ дан 7 December 2019 в 07:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: