Как индексировать маленькие слова (3 буквы) с помощью полнотекстового поиска SQL? - PullRequest
3 голосов
/ 12 июня 2010

У меня есть таблица Incident с одной строкой, которая имеет значение 'out of office' в столбце Description.

Однако следующий запрос не возвращает эту строку.

SELECT * FROM Incident
WHERE CONTAINS( (Incident.Description), '"out*"' )

Слово «out» отсутствует в файле шумов (я полностью очистил файл шумов и перестроил индекс).

Это потому, что полнотекстовый поиск SQL не индексирует маленькие слова?Есть ли настройки для этого?Есть ли команда, которую я могу запустить, чтобы точно определить, какой файл шума использовался для построения индекса?

Примечание: я нахожусь на SQL 2005.

Ответы [ 2 ]

1 голос
/ 22 июня 2010

когда вы работаете с файлами шума, они не учитываются, пока вы не перезапустите службу полного поиска текста SQL Server для своего экземпляра.

Я проверил ваш сценарий, выполнив следующее, и он работает ...


  1. Наличие файла шумов со значением 'out' в нем
  2. Вставка записей со значением, подобным '% out%' в них
  3. Выполнение выбораи убедитесь, что они не возвращаются
  4. Измените файл слова и удалите запись 'out'
  5. Перезапустите службу полнотекстового поиска SQL Server для моего экземпляра
  6. Перестройте полную версиютекстовый каталог с использованием «ALTER FULLTEXT CATALOG [NameOfMyCatalog] REBUILD»
  7. Подождите немного (дайте возможность полнотекстовой службе выполнить задание)
  8. Выполните оператор SELECT и убедитесь, что онтеперь возвращается

Надеюсь, это поможет ...

0 голосов
/ 12 июня 2010

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

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