Можете ли вы выполнить поиск по ключевым словам AND с помощью FREETEXT () на SQL Server 2005? - PullRequest
3 голосов
/ 24 августа 2008

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 24 августа 2008

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

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

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

Или я так думаю :)

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

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

1 голос
/ 25 августа 2008

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

1 голос
/ 24 августа 2008

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

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

...