Сведения о вопросе

Sadijon

04:29, 21st August, 2020

Можно ли выполнить AND поиск ключевых слов с помощью FREETEXT() на SQL Server 2005?

Просмотров: 414   Ответов: 3

Существует запрос , чтобы сделать SO поиска по умолчанию для функциональности стиля AND по сравнению с текущим OR, когда используются несколько терминов.

Официальный ответ был таким:

не так просто, как кажется; мы используем функцию SQL Server 2005 FREETEXT() , и я не могу найти способ указать AND против OR - не так ли?

Итак, есть ли способ?

Есть ряд ресурсов , которые я могу найти, но я не эксперт.



  Сведения об ответе

+-*/

06:49, 1st August, 2020

Насколько я видел, это невозможно сделать AND при использовании FREETEXT() под SQL 2005 (ни 2008, afaik).

Запрос FREETEXT игнорирует логические, близкие и подстановочные операторы по дизайну. Однако вы могли бы сделать это:

WHERE FREETEXT('You gotta love MS-SQL') > 0
 AND FREETEXT('You gotta love MySQL too...') >  0

Или это то, что я думаю :)

-- Идея состоит в том, чтобы сделать его вычислить до логического, так что вы можете использовать логические операторы. Не знаю, даст ли это ошибку или нет. Я думаю, что это должно сработать. Но справочный материал указывает на то, что это невозможно по дизайну.

Использование CONTAINS() вместо FREETEXT() может помочь.


  Сведения об ответе

Chhiki

00:45, 1st August, 2020

Я только начал читать о freetext, так что терпите меня. Если вы пытаетесь разрешить поиск тега, скажем VB, а также найти вещи, помеченные как VB6, Visual Basic, VisualBasic и VB.Net, разве эти значения не будут установлены как синонимы в тезаурусе DB, а не параметры запроса?

Если это действительно так, эта ссылка на MSDN объясняет, как добавить элементы в Тезаурус.


  Сведения об ответе

park

07:49, 9th August, 2020

Хорошо, это изменение в -- теперь мы используем CONTAINS() с неявным AND вместо FREETEXT() и его неявным OR .


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться