Настройка и управление стоп-словами и списками стоп-слов для полнотекстового поиска
Чтобы предотвратить чрезмерное увеличение полнотекстового индекса, в SQL Server реализован механизм, отбрасывающий часто встречающиеся строки, не повышающие эффективность поиска. Эти отброшенные строки называются стоп-словами. Во время создания индекса средство полнотекстового поиска не включает стоп-слова в полнотекстовый индекс. Это значит, что полнотекстовые запросы не будут выполнять поиск по стоп-словам.
В этом разделе
Основные сведения о стоп-словах и списках стоп-слов
Создание списка стоп-слов
Использование списка стоп-слов в полнотекстовых запросах
Просмотр списков стоп-слов и их метаданных
Изменение стоп-слов в списке стоп-слов
Обновление пропускаемых слов из SQL Server 2005
Основные сведения о стоп-словах и списках стоп-слов
Стоп-слово может быть словом конкретного языка или токеном, не имеющим лингвистического значения. Например, в английском языке такие слова, как «a», «and», «is» и «the», не включаются в полнотекстовый индекс, потому что при поиске они бесполезны.
Хотя стоп-слова при поиске не учитываются, полнотекстовый индекс принимает во внимание расположение таких слов. Рассмотрим для примера фразу «Instructions are applicable to these Adventure Works Cycles models». Позиции слов в этой фразе приведены в следующей таблице.
Слово |
Позиция |
---|---|
Instructions |
1 |
are |
2 |
applicable |
3 |
до |
4 |
these |
5 |
Adventure |
6 |
Works |
7 |
Cycles |
8 |
модели |
9 |
Стоп-слова «are», «to» и «these», занимающие позиции 2, 4 и 5, в полнотекстовый индекс не включаются. Однако данные об их позициях сохраняются, благодаря чему позиции других слов в фразе остаются неизменными.
Управление стоп-словами в базе данных производится через объекты, называемые списками стоп-слов. Список стоп-слов связан с полнотекстовым индексом и применяется к полнотекстовым запросам по этому индексу.
[В НАЧАЛО]
Создание списка стоп-слов
Списки стоп-слов можно создать любым из следующих способов.
Использование поддерживаемого системой списка стоп-слов в базе данных. В составе SQL Server поставляется системный список стоп-слов, который содержит наиболее часто используемые стоп-слова для каждого поддерживаемого языка, то есть для любого языка, связанного по умолчанию с предложенными конкретными средствами разбиения по словам. Системный список стоп-слов содержит общие стоп-слова для всех поддерживаемых языков. Можно скопировать системный список стоп-слов и внести необходимые изменения в созданную копию, добавляя и удаляя стоп-слова.
Системный список стоп-слов содержится в базе данных Resource.
Создание собственного списка стоп-слов, а затем добавление к нему стоп-слов, относящихся к любому заданному языку. При необходимости можно удалять стоп-слова из этого списка.
Использование существующего пользовательского списка стоп-слов из другой базы данных в текущем экземпляре сервера и затем (при необходимости) добавление и удаление стоп-слов.
Важно! |
---|
Инструкции CREATE FULLTEXT STOPLIST, ALTER FULLTEXT STOPLIST и DROP FULLTEXT STOPLIST поддерживаются только в условиях применения уровня совместимости 100. При использовании уровней совместимости 80 и 90 эти инструкции не поддерживаются. Тем не менее при любом уровне совместимости системный список стоп-слов автоматически связывается с новыми полнотекстовыми индексами. |
Создание списка стоп-слов
Для создания полнотекстового списка стоп-слов в Management Studio
В обозревателе объектов разверните узел сервера.
Разверните узел Базы данных, затем разверните базу данных, в которой нужно создать список полнотекстовых стоп-слов.
Разверните узел Хранилище, затем щелкните правой кнопкой мыши Полнотекстовые списки стоп-слов.
Выберите команду Создание полнотекстового списка стоп-слов.
Укажите имя списка стоп-слов.
Дополнительно можно указать владельца списка стоп-слов.
Выберите один из следующих вариантов создания списка стоп-слов.
Создать пустой список стоп-слов
Создать из системного списка стоп-слов
Создать из существующего полнотекстового списка стоп-слов
Дополнительные сведения см. в разделе Создание списка полнотекстовых стоп-слов (страница «Общие»).
Нажмите кнопку ОК.
Удаление списка стоп-слов
[В НАЧАЛО]
Использование списка стоп-слов в полнотекстовых запросах
Чтобы использовать список стоп-слов в запросах, нужно связать его с полнотекстовым индексом. Можно добавить список стоп-слов к полнотекстовому индексу при создании индекса или изменить индекс позже, добавив список стоп-слов.
Создание полнотекстового индекса и его связь со списком стоп-слов
Связывание или разъединение списка стоп-слов с существующим полнотекстовым индексом
Подавление сообщения об ошибке при неуспешном завершении логической операции, применяемой к полнотекстовому запросу, из-за стоп-слов
[В НАЧАЛО]
Просмотр списков стоп-слов и их метаданных
Для просмотра всех стоп-слов из списка стоп-слов
Получение сведений обо всех списках стоп-слов в текущей базе данных
Просмотр разметки, полученной в результате применения средства разбиения по словам, тезауруса и списка стоп-слов
[В НАЧАЛО]
Изменение стоп-слов в списке стоп-слов
Добавление или удаление стоп-слов из списка стоп-слов
Изменение стоп-слов в списке стоп-слов в Management Studio
В обозревателе объектов разверните узел сервера.
Раскройте узел Базы данных, а затем — соответствующую базу данных.
Разверните узел Хранилище и выберите Полнотекстовые списки стоп-слов.
Щелкните правой кнопкой мыши список стоп-слов, свойства которого необходимо изменить, и выберите пункт Свойства.
В диалоговом окне Свойства полнотекстового списка стоп-слов выполните следующее.
В списке Действие выберите одно из следующих действий: Добавить стоп-слово, Удалить стоп-слово, Удалить все стоп-слова или Очистить список стоп-слов.
Если для выбранного действия доступно текстовое поле Стоп-слово, введите одно стоп-слово. Это стоп-слово должно быть уникальным; иными словами, оно еще не должно присутствовать в списке стоп-слов для выбранного языка.
Если для выбранного действия доступен список Язык полнотекстового поиска, выберите язык.
Нажмите кнопку ОК.
[В НАЧАЛО]
Обновление пропускаемых слов из SQL Server 2005
Применявшиеся в SQL Server 2005 пропускаемые слова были заменены стоп-словами. При обновлении базы данных с версии SQL Server 2005 файлы пропускаемых слов более не используются. Однако файлы пропускаемых слов хранятся в папке FTDATA\FTNoiseThresaurusBak, и их можно использовать в дальнейшем при обновлении или построении соответствующих списков стоп-слов. Сведения об обновлении файлов пропускаемых слов с переходом к спискам стоп-слов см. в разделе Обновление полнотекстового поиска из SQL Server 2005.
[В НАЧАЛО]