Настройка и управление стоп-словами и списками стоп-слов для полнотекстового поискаConfigure and Manage Stopwords and Stoplists for Full-Text Search

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Чтобы предотвратить чрезмерное увеличение полнотекстового индекса, в SQL ServerSQL Server реализован механизм, отбрасывающий часто встречающиеся строки, не повышающие эффективность поиска.To prevent a full-text index from becoming bloated, SQL ServerSQL Server has a mechanism that discards commonly occurring strings that do not help the search. Эти отброшенные строки называются стоп-словами.These discarded strings are called stopwords. Во время создания индекса средство полнотекстового поиска не включает стоп-слова в полнотекстовый индекс.During index creation, the Full-Text Engine omits stopwords from the full-text index. Это значит, что полнотекстовые запросы не будут выполнять поиск по стоп-словам.This means that full-text queries will not search on stopwords.

Стоп-слова.Stopwords. Стоп-слово может быть словом конкретного языка.A stopword can be a word with meaning in a specific language. Например, в английском языке такие слова, как «a», «and», «is» и «the», не включаются в полнотекстовый индекс, потому что при поиске они бесполезны.For example, in the English language, words such as "a," "and," "is," and "the" are left out of the full-text index since they are known to be useless to a search. Стоп-слово может также быть токеном, не имеющим лингвистического значения.A stopword can also be a token that does not have linguistic meaning.

Списки стоп-слов.Stoplists. Управление стоп-словами в базе данных производится через объекты, называемые списками стоп-слов.Stopwords are managed in databases using objects called stoplists. Список стоп-слов связан с полнотекстовым индексом и применяется к полнотекстовым запросам по этому индексу.A stoplist is a list of stopwords that, when associated with a full-text index, is applied to full-text queries on that index.

Использование имеющегося списка стоп-словUse an existing stoplist

Имеющийся список стоп-слов можно использовать следующими способами.You can use an existsing stoplist in the following ways:

  • Использование поддерживаемого системой списка стоп-слов в базе данных.Use the system-supplied stoplist in the database. В составе SQL ServerSQL Server поставляется системный список стоп-слов, который содержит наиболее часто используемые стоп-слова для каждого поддерживаемого языка, то есть для любого языка, связанного по умолчанию с предложенными конкретными средствами разбиения по словам.SQL ServerSQL Server ships with a system stoplist that contains the most commonly used stopwords for each supported language, that is for every language associated with given word breakers by default. Вы можете скопировать системный список стоп-слов и внести необходимые изменения в созданную копию, добавляя и удаляя стоп-слова.You can copy the system stoplist and customize your copy by adding and removing stopwords.

    Системный список стоп-слов содержится в базе данных Resource .The system stoplist is installed in the Resource database.

  • Использование имеющегося пользовательского списка стоп-слов из другой базы данных в текущем экземпляре сервера, а затем (при необходимости) добавление и удаление стоп-слов.Use an existing custom stoplist from another database in the current server instance, then add or drop stopwords as appropriate.

Создание списка стоп-словCreate a new stoplist

Создание списка стоп-слов с помощью Transact-SQLCreate a new stoplist with Transact-SQL

Используйте инструкцию CREATE FULLTEXT STOPLIST.Use CREATE FULLTEXT STOPLIST.

Создание списка стоп-слов с помощью среды Management StudioCreate a new stoplist with Management Studio

  1. В обозревателе объектов разверните узел сервера.In Object Explorer, expand the server.

  2. Разверните узел Базы данных, а затем разверните базу данных, в которой нужно создать список полнотекстовых стоп-слов.Expand Databases, and then expand the database in which you want to create the full-text stoplist.

  3. Разверните узел Хранилище, а затем щелкните правой кнопкой мыши узел Полнотекстовые списки стоп-слов.Expand Storage, and then right-click Full-Text Stoplists.

  4. Выберите пункт Создание полнотекстового списка стоп-слов.Select New Full-Text Stoplist.

  5. Введите имя нового списка стоп-слов.Enter your new stoplist's name.

  6. Дополнительно можно указать владельца списка стоп-слов.Optionally, specify someone else as the stoplist owner.

  7. Выберите один из следующих вариантов создания списка стоп-слов.Select one of the following create stoplist options:

    • Создать пустой список стоп-словCreate an empty stoplist

    • Создать из системного списка стоп-словCreate from the system stoplist

    • Создать из существующего полнотекстового списка стоп-словCreate from an existing full-text stoplist

    Дополнительные сведения см. в разделе Создание списка полнотекстовых стоп-слов (страница "Общие").For more information, see New Full-Text Stoplist (General Page).

  8. Нажмите кнопку ОК.Click OK.

Использование списка стоп-слов в полнотекстовых запросахUse a stoplist in full-text queries

Чтобы использовать список стоп-слов в запросах, нужно связать его с полнотекстовым индексом.To use a stoplist in queries, you must associate it with a full-text index. Можно добавить список стоп-слов к полнотекстовому индексу при создании индекса или изменить индекс позже, добавив список стоп-слов.You can attach a stoplist to a full-text index when you create the index, or you can alter the index later to add a stoplist.

Создание полнотекстового индекса и его связь со списком стоп-словCreate a full-text index and associate a stoplist with it

Используйте инструкцию CREATE FULLTEXT INDEX (Transact-SQL).Use CREATE FULLTEXT INDEX (Transact-SQL).

Связывание или разъединение списка стоп-слов с имеющимся полнотекстовым индексомAssociate or disassociate a stoplist with an existing full-text index

Используйте инструкцию ALTER FULLTEXT INDEX (Transact-SQL).Use ALTER FULLTEXT INDEX (Transact-SQL).

Изменение стоп-слов в списке стоп-словChange the stopwords in a stoplist

Добавление или удаление стоп-слов из списка стоп-слов с помощью Transact-SQLAdd or drop stopwords from a stoplist with Transact-SQL

Используйте инструкцию ALTER FULLTEXT STOPLIST (Transact-SQL).Use ALTER FULLTEXT STOPLIST (Transact-SQL).

Добавление или удаление стоп-слов из списка стоп-слов с помощью среды Management StudioAdd or drop stopwords from a stoplist with Management Studio

  1. В обозревателе объектов разверните узел сервера.In Object Explorer, expand the server.

  2. Раскройте узел Базы данных, а затем — соответствующую базу данных.Expand Databases, and then expand the database.

  3. Разверните узел Хранилищеи выберите Полнотекстовые списки стоп-слов.Expand Storage, and then select Full Text Stoplists.

  4. Щелкните правой кнопкой мыши список стоп-слов, свойства которого необходимо изменить, и выберите пункт Свойства.Right-click the stoplist whose properties you want to change, and select Properties.

  5. В диалоговом окне Свойства полнотекстового списка стоп-слов выполните указанные ниже действия.In the Full-Text Stoplist Properties dialog box:

    1. В списке Действие выберите одно из следующих действий: Добавить стоп-слово, Удалить стоп-слово, Удалить все стоп-слова или Очистить список стоп-слов.In the Action list box, select one of the following actions: Add stopword, Delete stopword, Delete all stopwords, or Clear stoplist.

    2. Если для выбранного действия доступно текстовое поле Стоп-слово , введите одно стоп-слово.If the Stopword text box is enabled for the selected action, enter a single stopword. Это стоп-слово должно быть уникальным; иными словами, оно еще не должно присутствовать в списке стоп-слов для выбранного языка.This stopword must be unique; that is, not yet in this stoplist for the language that you select.

    3. Если для выбранного действия доступен список Язык полнотекстового поиска , выберите язык.If the Full-text language list box is enabled for the selected action, select a language.

  6. Нажмите кнопку ОК.Click OK.

Управление списками стоп-слов и их использованиеManage stoplists and their usage

Просмотр всех стоп-слов в списке стоп-словView all the stopwords in a stoplist

Используйте представление sys.fulltext_stopwords (Transact-SQL).Use sys.fulltext_stopwords (Transact-SQL).

Получение сведений обо всех списках стоп-слов в текущей базе данныхGet info about all the stoplists in the current database

Используйте представления sys.fulltext_stoplists (Transact-SQL) и sys.fulltext_stopwords (Transact-SQL).Use sys.fulltext_stoplists (Transact-SQL) and sys.fulltext_stopwords (Transact-SQL).

Просмотр разметки, полученной в результате применения средства разбиения по словам, тезауруса и списка стоп-словView the tokenization result of a word breaker, thesaurus, and stoplist combination

Используйте представление sys.dm_fts_parser (Transact-SQL).Use sys.dm_fts_parser (Transact-SQL).

Подавление сообщения об ошибке при неуспешном завершении логической операции, применяемой к полнотекстовому запросу, из-за стоп-словSuppress an error message if stopwords cause a Boolean operation on a full-text query to fail

Используйте параметр конфигурации сервера transform noise words.Use the transform noise words Server Configuration Option.

Дополнительные сведения о позиции стоп-словMore info about stopword position

Хотя стоп-слова при поиске не учитываются, полнотекстовый индекс принимает во внимание расположение таких слов.Although it ignores the inclusion of stopwords, the full-text index does take into account their position. Рассмотрим для примера фразу «Instructions are applicable to these Adventure Works Cycles models».For example, consider the phrase, "Instructions are applicable to these Adventure Works Cycles models". Позиции слов в этой фразе приведены в следующей таблице.The following table depicts the position of the words in the phrase:

WordWord ПоложениеPosition
InstructionsInstructions 11
areare 22
applicableapplicable 33
вto 44
thesethese 55
AdventureAdventure 66
WorksWorks 77
CyclesCycles 88
моделиmodels 99

Стоп-слова «are», «to» и «these», занимающие позиции 2, 4 и 5, в полнотекстовый индекс не включаются.The stopwords "are", "to", and "these" that are in positions 2, 4, and 5 are left out of the full-text index. Однако данные об их позициях сохраняются, благодаря чему позиции других слов в фразе остаются неизменными.However, their positional information is maintained, thereby leaving the position of the other words in the phrase unaffected.

Обновление пропускаемых слов из SQL Server 2005Upgrade noise words from SQL Server 2005

SQL Server 2005 (9.x)SQL Server 2005 (9.x) пропускаемые слова были заменены стоп-словами.noise words have been replaced by stopwords. При обновлении базы данных с версии SQL Server 2005 (9.x)SQL Server 2005 (9.x)файлы пропускаемых слов более не используются.When a database is upgraded from SQL Server 2005 (9.x)SQL Server 2005 (9.x), the noise-word files are no longer used. Однако файлы пропускаемых слов хранятся в папке FTDATA\FTNoiseThresaurusBak, и их можно использовать в дальнейшем при обновлении или построении соответствующих списков стоп-слов.However, the noise-word files are stored in the FTDATA\ FTNoiseThesaurusBak folder, and you can use them later when updating or building the corresponding stoplists. Сведения об обновлении файлов пропускаемых слов с переходом к спискам стоп-слов см. в разделе Обновление полнотекстового поиска.For information about upgrading noise-word files to stoplists, see Upgrade Full-Text Search.