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

StackOverflow https://stackoverflow.com/questions/25277

Вопрос

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

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

не так просто, как кажется;мы используем SQL Server 2005 ОТКРЫТЫЙ ТЕКСТ() функцию, и я не могу найти способ указать AND vs.ИЛИ -- сможешь?

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top