Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server База данных SQL Azure
Чтобы предотвратить раздувание полнотекстового индекса, SQL Server имеет механизм, который отбрасывает часто встречающиеся строки, не содействующие поиску. Эти отброшенные строки называются стоп-словами. Во время создания индекса средство полнотекстового поиска не включает стоп-слова в полнотекстовый индекс. Это значит, что полнотекстовые запросы не будут выполнять поиск по стоп-словам.
Стоп-слова. Стоп-слово может быть словом со значением в конкретном языке. Например, в английском языке такие слова, как «a», «and», «is» и «the», не включаются в полнотекстовый индекс, потому что при поиске они бесполезны. Стоп-слово может также быть токеном, не имеющим лингвистического значения.
Стоплисты. Управление стоп-словами в базе данных производится через объекты, называемые списками стоп-слов. Список стоп-слов связан с полнотекстовым индексом и применяется к полнотекстовым запросам по этому индексу.
Использование имеющегося списка стоп-слов
Вы можете использовать существующий список стоп-слов следующим образом:
Используйте системный стоп-список в базе данных. SQL Server поставляется с системным списком стоп-слов, который содержит наиболее часто используемые стоп-слова для каждого поддерживаемого языка, то есть для каждого языка, связанного с заданными средствами разбиения слов по умолчанию. Вы можете скопировать системный список стоп-слов и внести необходимые изменения в созданную копию, добавляя и удаляя стоп-слова.
Системный стоп-лист установлен в базе данных Resource.
Используйте имеющийся пользовательский список стоп-слов из другой базы данных в текущем экземпляре сервера, затем добавьте или удалите стоп-слова по мере необходимости.
Создайте новый стоп-лист
Создание нового списка стоп-слов с помощью Transact-SQL
Используйте CREATE FULLTEXT STOPLIST.
Создание нового списка стоп-слов в Management Studio
В обозревателе объектов разверните сервер.
Разверните Базы данных, а затем разверните базу данных, в которой вы хотите создать полнотекстовый стоп-лист.
Разверните Хранилище, а затем щелкните правой кнопкой мыши Полнотекстовые списки стоп-слов.
Выберите Новый полнотекстовый стоп-лист.
Введите имя нового списка стоп-слов.
Можно указать другого человека в качестве владельца списка стоп-слов.
Выберите один из следующих вариантов для создания стоп-листа.
Создать пустой стоп-лист
Создать из системного списка стоп-слов
Создать из имеющегося полнотекстового стоплиста
Дополнительные сведения см. в разделе "Новый полнотекстовый список стоп-слов" (страница "Общие") .
Нажмите ОК.
Использование списка стоп-слов в полнотекстовых запросах
Чтобы использовать список стоп-слов в запросах, нужно связать его с полнотекстовым индексом. Можно добавить список стоп-слов к полнотекстовому индексу при создании индекса или изменить индекс позже, добавив список стоп-слов.
Создайте полнотекстовый индекс и свяжите его со списком стоп-слов.
Используйте CREATE FULLTEXT INDEX (Transact-SQL).
Связывание или разъединение списка стоп-слов с имеющимся полнотекстовым индексом
Используйте ALTER FULLTEXT INDEX (Transact-SQL).
Изменение стоп-слов в стоп-листе
Добавление или удаление стоп-слов из списка стоп-слов с помощью Transact-SQL
Используйте ALTER FULLTEXT STOPLIST (Transact-SQL).
Добавление или удаление стоп-слов из стоп-листа с помощью Management Studio
В Обозревателе объектов разверните сервер.
Разверните Базы данных, затем разверните базу данных.
Разверните узел Хранилище и выберите Полнотекстовые списки стоп-слов.
Щелкните правой кнопкой мыши по стоплисту, свойства которого необходимо изменить, и выберите пункт Свойства.
В диалоговом окне Свойства полнотекстового списка стоп-слов выполните указанные ниже действия.
В списке Действия выберите одно из следующих действий: Добавить стоп-слово, Удалить стоп-слово, Удалить все стоп-словаили Очистить список стоп-слов.
Если для выбранного действия доступно текстовое поле Стоп-слово , введите одно стоп-слово. Это стоп-слово должно быть уникальным; иными словами, оно еще не должно присутствовать в списке стоп-слов для выбранного языка.
Если для выбранного действия доступен список Язык полнотекстового поиска , выберите язык.
Нажмите ОК.
Управление стоп-листами и их использование
Просмотр всех стоп-слов в стоплисте
Используйте sys.fulltext_stopwords (Transact-SQL).
Получение информации о всех стоп-листах в текущей базе данных
Используйте sys.fulltext_stoplists (Transact-SQL) и sys.fulltext_stopwords (Transact-SQL).
Посмотреть результат токенизации в результате применения средства разбиения по словам, тезауруса и списка стоп-слов.
Используйте sys.dm_fts_parser (Transact-SQL).
Подавить сообщение об ошибке, если из-за стоп-слов логическая операция на полнотекстовом запросе терпит неудачу.
Используйте параметр конфигурации сервера transform noise words.
Дополнительные сведения о позиции стоп-слов
Хотя стоп-слова при поиске не учитываются, полнотекстовый индекс принимает во внимание расположение таких слов. Рассмотрим для примера фразу «Инструкции применимы к этим моделям Adventure Works Cycles». Позиции слов в этой фразе приведены в следующей таблице.
Слово | Позиция |
---|---|
Инструкции | 1 |
являются | 2 |
применимо | 3 |
до | 4 |
эти | 5 |
Приключение | 6 |
Работы | 7 |
Циклы | 8 |
модели | 9 |
Стоп-слова «are», «to» и «these», занимающие позиции 2, 4 и 5, в полнотекстовый индекс не включаются. Однако данные об их позициях сохраняются, благодаря чему позиции других слов в фразе остаются неизменными.
Обновление шумовых слов в SQL Server 2005
В SQL Server 2005 (9.x) слова шума были заменены на стоп-слова. При обновлении базы данных с версии SQL Server 2005 (9.x) файлы шумовых слов больше не используются. Однако файлы пропускаемых слов хранятся в папке FTDATA\FTNoiseThesaurusBak, и их можно использовать в дальнейшем при обновлении или построении соответствующих стоп-листов. Сведения об обновлении файлов пропускаемых слов с переходом к спискам стоп-слов см. в разделе Обновление полнотекстового поиска.