Можете ли вы выполнить поиск И по ключевым словам, используя FREETEXT () на SQL Server 2005?

Существует запрос о том, чтобы поиск SO по умолчанию выполнялся в стиле AND по сравнению с текущим ИЛИ при использовании нескольких терминов.

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

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

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

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

24.08.2008 18:47:16
Ответ здесь утверждает, что это невозможно.
Sören Kuklau 24.08.2008 19:11:58
3 ОТВЕТА
РЕШЕНИЕ

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

1
24.08.2008 23:40:09

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

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

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

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

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

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

2
24.08.2008 19:20:50

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

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

1
25.08.2008 00:07:58