SQL Server «Не удалось выполнить полнотекстовую операцию - содержит только пропущенные слова» - PullRequest
0 голосов
/ 17 декабря 2009

В настоящее время я работаю над созданием полнотекстовой поисковой системы для одного из наших сайтов, используя функции, которые предлагает сама CMS. Это позволяет мне выполнять SQL-запрос без программирования среднего уровня.

Однако это также означает, что я не могу использовать программирование для фильтрации или очистки данных поискового запроса. Работает нормально, пока пользователь не введет «шумовые слова».

Мой текущий запрос принимает введенное пользователем значение и выполняет некоторые операции с ним перед отправкой в ​​функцию CONTAINS, например, ltrim / rtrim. Он также заменяет пробел на «И», поэтому каждое слово используется в качестве отдельного предложения.

Здесь и начинается проблема. Судя по всему, SQL Server жалуется, когда в одном из предложений есть слово-шум (и только это). Поэтому, когда пользователь вводит «Wat niemand has verwacht» в качестве запроса (на голландском языке), SQL Server жалуется, что предложение содержит только пропущенные слова. Он работает с первой половиной ('wat niemand'), но выходит, как только вводится 'had'. После редактирования функция CONTAINS получит «Wat AND niemand AND had AND verwacht» и будет подавлена.

Итак, конкретно: кто-нибудь знает, как я могу заставить SQL Server отфильтровывать шумовые слова? Я могу, конечно, включить огромный список замен, в который включено каждое слово шума, но я сомневаюсь, что это эффективно. Я также могу отфильтровать <= 3 буквенных слова, но я не думаю, что это сильно поможет для более длинных шумовых слов (как и предположительно, «amfitheatersgewijze» также является шумовым словом). Очистка файла конфигурации шумовых слов и перестройка поискового индекса - это мера, которую я бы рассмотрел только последним. </p>

1 Ответ

0 голосов
/ 06 марта 2010

добавьте слово «word» никогда не находите это к каждому запросу (или каждому запросу, у которого нет слова больше чем 5 символов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...