Не могу использовать такие слова, как "Can", "of" в полнотекстовом поиске - PullRequest
1 голос
/ 20 июля 2009

Я использую MsSQL server 2008, я использую CONTAINSTABLE с поисковым термином «can», но поисковый запрос не возвращает ничего, хотя к этому каталогу не прикреплены стоп-листы.

ВЫБЕРИТЕ DISTINCT c.ID ИЗ города c ВНУТРЕННЕЕ СОЕДИНЕНИЕ СОДЕРЖИТСЯ (City, (Name), '' can '') AS city_tbl1 ON city_tbl1. [KEY] = c.ID

Чтобы убедиться, что этот вид существует, я запустил этот запрос

обновить Город SET Name = 'can' WHERE ID = 34

нет результатов, где возвращается.

Пожалуйста, помогите.

Заранее спасибо --Z

Ответы [ 3 ]

4 голосов
/ 20 июля 2009

Эти слова являются так называемыми "стоп-словами". Они игнорируются полнотекстовым движком.

В mssql 2008 вы можете очистить таблицу стоп-слов, выполнив следующий код:

- отключить фильтр стоп-слов -

use yourDatabase;

create fulltext stoplist EmptyStopList;

alter fulltext index on yourFullTextTable
set stoplist EmptyStopList;

Если указанные выше команды не работают, убедитесь, что уровень совместимости вашей базы данных установлен на 100 (это означает, что это база данных 2008 года).

- Обязательно -

EXEC sp_dbcmptlevel youDatabase, 100;
2 голосов
/ 20 июля 2009

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

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

sp_configure 'transform noise words', 1; ИДТИ Перенастроить;

это только заставило это работать.

Большое спасибо за ваш ответ. ура --Z

0 голосов
/ 20 июля 2009

SQL Server имеет текстовый файл с общими словами, которые игнорируются при поиске. Если вы хотите добавить / удалить слова, загляните в каталог Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ FTDATA \

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

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