Средства разбиения по словам и парадигматические модули
Средства разбиения по словам и парадигматические модули выполняют лингвистический анализ данных, проходящих полнотекстовое индексирование. Лингвистический анализ предусматривает поиск границ слов (разделение слов) и спряжение глаголов (выделение основы). Средства разбиения по словам и парадигматические модули являются уникальными для своих языков. У разных языков правила лингвистического анализа различаются. Для данного языка средство разбиения по словам определяет слова по границам слов согласно лексическим правилам языка. Каждое слово (называемое также токеном) вставляется в полнотекстовый индекс с использованием сжатого представления для уменьшения его размера. Парадигматический модуль создает словоформы определенного слова на основании правил этого языка (например, «выполняется», «выполнялся» и «выполняющийся» являются различными формами слова «выполняться»).
Средства разбиения по словам для каждого языка позволяют получать более точные термы для этого языка. Если имеется средство разбиения по словам для группы языков, но для конкретного языка, входящего в эту группу, его нет, используется основной язык. Например, для обработки франко-канадского текста используется средство разбиения по словам для французского языка. Если для определенного языка отсутствует средство разбиения по словам, используется нейтральное средство разбиения по словам. В случае нейтрального средства разбиения по словам слова разделяются по нейтральным символам, таким как пробелы и знаки препинания.
Регистрация средств разбиения по словам
Для использования средств разбиения по словам определенного языка необходимо выполнить их регистрацию. Если для языка зарегистрированы средства разбиения по словам, все его прочие лингвистические ресурсы, в том числе парадигматические модули, пропускаемые слова (стоп-слова) и файлы тезауруса, становятся доступными для полнотекстовой индексации и выполнения запросов. Чтобы просмотреть список языков и средств разбиения по словам, зарегистрированных в настоящее время в SQL Server, используйте следующую инструкцию Transact-SQL.
SELECT * FROM sys.fulltext_languages
При добавлении, удалении или изменении средства разбиения по словам следует обновить список кодов языков, поддерживаемых в Microsoft Windows для полнотекстового индексирования и для выполнения запросов. Дополнительные сведения см. в разделе Как изменить список зарегистрированных средств разбиения по словам и фильтров (Transact-SQL).
В SQL Server 2008 доступно несколько лицензионных сторонних средств разбиения по словам. Можно вручную загрузить дополнительные сторонние средства разбиения по словам (и парадигматические модули) для нескольких языков (датского, польского и турецкого). Эти средства разбиения по словам по умолчанию не включены, так как созданы сторонними разработчиками, которые не обеспечивают уровень тестирования, безопасности и надежности, необходимый для включения этих средств по умолчанию. Дополнительные сведения см. в разделе Как загрузить лицензионные средства разбиения по словам, созданные сторонними разработчиками.
Параметр языка полнотекстового поиска
Для локализованной версии SQL Server программа установки SQL Server задает в качестве значения параметра язык полнотекстового поиска по умолчанию язык сервера, если для него существует совпадение. Для нелокализованной версии SQL Server параметр default full-text language по умолчанию имеет значение, соответствующее английскому языку.
При создании или изменении полнотекстового индекса для каждого отдельного полнотекстового индексированного столбца можно указать отдельный язык. Если для столбца не определен ни один язык, по умолчанию используется значение параметра конфигурации default full-text language.
Дополнительные сведения см. в разделе Параметр default full-text language.
Примечание |
---|
Если в запросе не задан параметр LANGUAGE, то все столбцы, приведенные в предложении функции полнотекстового запроса, должны использовать один и тот же язык. Язык столбца с полнотекстовым индексированием, к которому выполняется запрос, определяет правила лингвистического анализа для аргументов предикатов полнотекстового запроса (CONTAINS и FREETEXT) и функций (CONTAINSTABLE и FREETEXTTABLE). |
Выбор языка при полнотекстовом индексировании столбца
При создании полнотекстового индекса рекомендуется указывать язык для каждого индексируемого столбца. Если для столбца язык не задан, то используется язык системы по умолчанию. Язык столбца определяет, какое средство разбиения по словам и какой парадигматический модуль используется для индексирования этого столбца. Кроме того, файл тезауруса этого языка будет использоваться полнотекстовыми запросами к столбцу.
При выборе языка столбца в процессе создания полнотекстового индекса следует учитывать несколько факторов. Они связаны со способом, которым текст размечается на лексемы и затем индексируется средством полнотекстового поиска. Дополнительные сведения см. в разделе Рекомендации по выбору языка при создании полнотекстового индекса.
Просмотр языка средства разбиения по словам для столбца
Как просмотреть или изменить свойства полнотекстового индекса (среда SQL Server Management Studio)
sys.fulltext_index_columns (Transact-SQL)
SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;
Влияние новых средств разбиения по словам в SQL Server 2008
SQL Server 2008 включает средства разбиения по словам для 50 разных языков, из которых 23 также поддерживаются в SQL Server 2005. Остались без изменения только средства разбиения по словам для английского, корейского, тайского и китайского языков (всех форм). Для других языков в SQL Server 2008 было добавлено новое поколение средств разбиения по словам, обладающих улучшенными лингвистическими правилами, а также большей точностью по сравнению с более ранними версиями средств разбиения по словам. Потенциально работа новых средств разбиения по словам может отличаться от работы средств разбиения по словам в импортируемых полнотекстовых индексах SQL Server 2005. Это имеет значение, если полнотекстовый каталог был импортирован при обновлении базы данных SQL Server 2005 до версии SQL Server 2008. Один или несколько языков, используемых полнотекстовыми индексами в полнотекстовом каталоге, могут быть связаны с новыми средствами разбиения по словам. Дополнительные сведения см. в разделе Обновление полнотекстового поиска.
Версии средств разбиения по словам для языков, поддерживаемых в SQL Server 2005
Остались без изменения только средства разбиения по словам для английского, корейского, тайского и китайского языков (всех форм). В следующей таблице перечислены средства разбиения по словам, которые поставлялись в составе SQL Server 2005, и отмечено, были ли они обновлены в SQL Server 2008. Полный список всех средств разбиения по словам SQL Server 2008 см. в разделе sys.fulltext_languages (Transact-SQL).
Примечание |
---|
Средства разбиения по словам для большинства языков зарегистрированы по умолчанию. Но по умолчанию отключен ряд лицензированных средств разбиения по словам сторонних разработчиков. Сведения об этих языках и о том, как зарегистрировать эти средства разбиения по словам, см. в разделе Как загрузить лицензионные средства разбиения по словам, созданные сторонними разработчиками. |
Язык |
Код языка |
Средства разбиения по словам |
---|---|---|
Бразильский |
1046 |
Новый |
Китайский (Гонконг, КНР) |
3076 |
Без изменений |
Китайский (Макау) |
5124 |
Без изменений |
Китайский (Сингапур) |
4100 |
Без изменений |
Датский (по умолчанию отключен) |
1030 |
Без изменений |
Голландский |
1043 |
Новый |
Английский |
1033 |
Без изменений |
Английский (Великобритания) |
2057 |
Без изменений |
Французский |
1036 |
Новый |
Немецкий |
1031 |
Новый |
Итальянский |
1040 |
Новый |
Японский |
1041 |
Новый |
Корейский |
1042 |
Без изменений |
Нейтральный |
0 |
Новый |
Польский (по умолчанию отключен) |
1045 |
Без изменений |
Португальский |
2070 |
Новый |
Русский |
1049 |
Новый |
Китайский (упрощенный) |
2052 |
Без изменений |
Испанский |
3082 |
Новый |
Шведский |
1053 |
Новый |
Тайский |
1054 |
Без изменений |
Китайский (традиционный) |
1028 |
Без изменений |
Турецкий (по умолчанию отключен) |
1055 |
Без изменений |
Полный список поддерживаемых языков см. в разделе sys.fulltext_languages (Transact-SQL).
Ошибки, связанные с превышением времени ожидания при разбиении слов
Ошибка, связанная с превышением времени ожидания при разбиении по словам, может возникать в разных ситуациях. Дополнительные сведения о таких ситуациях и соответствующих действиях см. в разделе MSSQLSERVER_30053.
Получение сведений о средствах разбиения по словам
Просмотр итогового результата разметки сочетания средства разбиения по словам, тезауруса и списка стоп-слов
Возвращение сведения о зарегистрированных средствах разбиения по словам
См. также