Создание вспомогательного словаря (Office SharePoint Server 2007)
Вспомогательный словарь — это файл в кодировке Юникод, который можно использовать для задания слов, которые средство разбиения слов для этого же языка должен считать целыми словами. По умолчанию вспомогательные словари не предоставляются. Чтобы изменить поведение средства разбиения слов для нескольких языков, необходимо создать отдельный вспомогательный словарь для каждого языка, для которого нужно изменить поведение средства разбиения слов. Создать вспомогательный словарь для средства разбиения слов, не зависящего от языка, нельзя.
Примечание
Вспомогательные словари применяются ко всем поставщикам общих служб в ферме серверов.
В следующей таблице перечислены языки и диалекты, для которых Microsoft Office SharePoint Server 2007 поддерживает вспомогательные словари. Эта таблица также содержит идентификатор кода языка (LCID) и шестнадцатеричный код языка для каждого поддерживаемого языка и диалекта.
Обратите внимание, что первые два числа в шестнадцатеричном коде языка представляют диалект, а последние два числа — язык. Если для языка отсутствуют отдельные средства разбиения слов для отдельных диалектов, первые два числа в шестнадцатеричном коде языка всегда равны нулю.
Таблица 1. Поддерживаемые языки
Язык / диалект | LCID | Шестнадцатеричный код языка |
---|---|---|
Арабский |
1025 |
0001 |
Бенгальский |
1093 |
0045 |
Болгарский |
1026 |
0002 |
Каталанский |
1027 |
0003 |
Хорватский |
1050 |
001a |
Датский |
1030 |
0006 |
Голландский |
1043 |
0013 |
Английский |
1033 |
0009 |
Французский |
1036 |
000c |
Немецкий |
1031 |
0007 |
Гуджарати |
1095 |
0047 |
Иврит |
1037 |
000d |
Хинди |
1081 |
0039 |
Исландский |
1039 |
000f |
Индонезийский |
1057 |
0021 |
Итальянский |
1040 |
0010 |
Японский |
1041 |
0011 |
Каннада |
1099 |
004b |
Латышский |
1062 |
0026 |
Литовский |
1063 |
0027 |
Малайский |
1086 |
003e |
Малаялам |
1100 |
004c |
Маратхи |
1102 |
004e |
Норвежский_Bokmaal |
1044 |
0414 |
Португальский |
2070 |
0816 |
Португальский _Бразилия |
1046 |
0416 |
Пенджабский |
1094 |
0046 |
Румынский |
1048 |
0018 |
Русский |
1049 |
0019 |
Сербский_кириллица |
3098 |
0c1a |
Сербский _латиница |
2074 |
081a |
Словацкий |
1051 |
001b |
Словенский |
1060 |
0024 |
Испанский |
3082 |
000a |
Шведский |
1053 |
001d |
Тамильский |
1097 |
0049 |
Телугу |
1098 |
004a |
Украинский |
1058 |
0022 |
Урду |
1056 |
0020 |
Вьетнамский |
1066 |
002a |
Причины использования вспомогательного словаря
Вспомогательные словари используются, чтобы заставить средство разбиения слов для конкретного языка игнорировать (то есть не разбивать) конкретное слово. Чтобы понять, понадобится ли вспомогательный словарь и какие слова или записи он должен содержать, полезно разобраться в поведении средств разбиения слов.
Средства разбиения слов используются системой индексирования, чтобы разбивать слова в маркерах при индексировании контента. Средства разбиения слов также используются системой запросов, чтобы разбивать слова в запросах на маркеры. В обоих случаях, если существующий словарь был создан для поддержки языка и диалекта используемого средства разбиения слов, служба поиска Office Server, прежде чем решить, использовать ли средство разбиения слов для этого слова, определяет, существует ли слово в вспомогательном словаре. Если слово во вспомогательном словаре отсутствует, средство разбиения слов выполняет свои обычные действия, которые могут привести к разбиению слова на несколько слов или маркеров. Если же слово присутствует во вспомогательном словаре, средство разбиения слов не выполняет никаких действий с этим словом.
В следующих примерах описывается типичное поведение средства разбиения слов и возможное влияние на это поведение записи во вспомогательном словаре.
Пример 1
Конкретное средство разбиения слов, встречающее такое слово как IT&T, может разбить слово по символу амперсанда (&). Результатом становится слово IT и буква T, которую средство разбиения слов для большинства языков отбросит как пропускаемое слово. Но если это слово, IT&T, существует во вспомогательном словаре для языка используемого средства разбиения слов, средство разбиения слов проигнорирует это слово, IT&T. Это означает, что при выполнении полного обхода это слово будет индексироваться как IT&T. Когда пользователь вводит запрос для этого слова, IT&T, средство разбиения слов не будет разбивать это слово. При этом запросы, содержащие "IT" или "T", не возвратят результаты поиска для документов, которые не содержат эти слова, но содержат слово "IT&T".
Пример 2
Средства разбиения слов могут повлиять на термины, такие как систематические химические названия (СХН) или номера службы CAS. Например, средства разбиения слов обычно отделяют от остальной части номера отдельные числа, появляющиеся перед дефисом или специальным символом или после него. Примером номера CAS является 7782-44-7 (регистрационный номер CAS для кислорода). После обработки средством разбиения слов это слова разбивается на три отдельных части: числа 7782, 44 и 7. Добавление СХН и номеров CAS, которые появляются в фонде документов, во вспомогательный словарь для каждого языка, в которых они применяются, позволяет системе индексировать СХН и номера CAS, не разбивая их на отдельные числа. Так как во время запроса используются соответствующее средство разбиения слов и вспомогательный словарь для языка контента, пользователь также может включить СХН или номер CAS в свой запрос, и они не будут разбиты на отдельные части.
Нормализация и файлы тезауруса
Нормализация именованных элементов, например нормализация даты, которая обычно применяется средством разбиения слов, не применяется к терминам запросов, появляющимся во вспомогательных словарях. Вместо этого все термины запроса, появляющиеся во вспомогательных словарях, рассматриваются как точное соответствие. Это особенно важно, если файл тезауруса содержит слова или числа (такие как вышеупомянутые). Например, если номер CAS, 7782-44-7, является частью набора расширения в тезаурусе, и средство разбиения слов разделяет этот номер по дефисам на три отдельных числа, то набор расширения, частью которого является этот номер, может работать не так, как ожидается. В этом случае проблему решает добавление номера CAS, 7782-44-7, во вспомогательный словарь соответствующего языка.
Подготовка
Создание или изменение вспомогательного словаря является несложным действием. Вспомогательный словарь — это просто файл в кодировке Юникод с записями (заданными словами) в отдельных строках, разделенных символами возврата каретки (CR) и перевода строки (LF). При добавлении записей во вспомогательный словарь, соблюдайте следующие правила, чтобы избежать непредсказуемых результатов:
В записях регистр не учитывается.
Ни в каком месте вспомогательного словаря нельзя использовать символ конвейера (|).
Ни в каком месте вспомогательного словаря нельзя использовать пробел.
Знак решетки (#) нельзя использовать в начале записи, но его можно использовать в середине или в конце записи.
За исключением вышеупомянутых символов конвейера, решетки и пробела, допустимы любые буквы, цифры, символы и знаки пунктуации.
Максимальная длина записи составляет 128 знаков (Юникод).
В следующей таблице приведены поддерживаемые и неподдерживаемые записи.
Таблица 2. Примеры поддерживаемых и неподдерживаемых записей
Поддерживается | Не поддерживается. |
---|---|
dogfood |
dog food |
1,36кг |
#3 |
Четыре#продажи |
dog|food |
ASP.NET |
|
IT&T |
|
(2-метоксиметиленокси)пропанол |
|
34590-97-8 |
|
C7H1603 |
Фиксированных ограничений на количество записей во вспомогательном словаре не существует, но рекомендуется, чтобы суммарный размер файла вспомогательного словаря не превышал 2 ГБ. На практике мы предлагаем ограничить число записей несколькими тысячами.
Создание вспомогательного словаря
Перед созданием вспомогательного словаря убедитесь убедитесь, что прочитан вышеприведенный в этой статье раздел Подготовка, так как он важен для понимания различий между поддерживаемыми и неподдерживаемыми записями во вспомогательном словаре.
Примечание
Для выполнения этой процедуры необходимо быть участником группы администраторов на каждом сервере индексирования и сервере запросов фермы серверов.
Создание вспомогательного словаря
Войдите на сервер индексирования в качестве участника группы администраторов.
Запустите "Блокнот" и введите слова, которые должны содержаться во вспомогательном словаре. Убедитесь в отсутствии недопустимых записей, описанных в разделе Подготовка.
Совет
Не забывайте, что каждое слово должно находиться на отдельной строке и отделяться символами возврата каретки (CR) и перевода строки (LF).
В меню Файл выберите команду Сохранить как.
В списке Тип файла выберите значение Все файлы.
В списке Кодировка выберите Юникод.
В поле Имя файла введите имя в следующем формате: CustomNNNN.lex, где NNNN — это шестнадцатеричный код языка, для которого создается вспомогательный словарь. См. список правильных имен файлов для поддерживаемых языков и диалектов в таблице 1 выше в этой статье.
В списке Папка перейдите в папку, содержащую средства разбиения слов. По умолчанию это диск:\program files\Microsoft Office Servers\12\bin, где диск — это буква диска, на который устанавливается Office SharePoint Server 2007.
Нажмите кнопку Сохранить.
Выполните следующую процедуру только при использовании серверов запросов, отделенных от сервера индексирования. В противном случае перейдите к разделу Остановка и перезапуск службы поиска сервера Office SharePoint Server.
Копирование вспомогательного словаря на другие серверы
Войдите на сервер индексирования в качестве члена группы администраторов.
Перейдите в папку, в которой был сохранен файл вспомогательного словаря.
Скопируйте файл вспомогательного словаря в папку, содержащую средства разбиения слов, на первом сервере запросов. По умолчанию это диск:\program files\Microsoft Office Servers\12\bin, где диск — это буква диска, на который устанавливается Office SharePoint Server 2007.
Выполните полный обход затрагиваемого контента. Сведения о выполнении полного обхода см. в статье Обход содержимого (Office SharePoint Server 2007).
Повторите шаги 1 — 3 на каждом сервере запросов фермы серверов.
Остановите и перезапустите службу поиска сервера Office SharePoint Server
Необходимо перезапустить службу поиска на всех серверах индексирования и запросов
Важно!
Не используйте страницу "Службы на сервере" центра администрирования для остановки и запуска этих служб, так как в этом случае удаляется служба, а также индекс и связанная конфигурация. Вместо этого выполните следующие действия.
Остановка и повторный запуск службы поиска Office SharePoint Server
Войдите на сервер индексирования в качестве участника группы администраторов.
В меню Пуск выберите Все программы, укажите Администрирование, а затем выберите Службы
Прокрутите список вниз, щелкните правой кнопкой мыши службу Поиск Office SharePoint Server, а затем выберите Свойства. Отображается страница свойств.
Нажмите кнопку Стоп. После остановки службы нажмите кнопку Пуск.
Убедитесь, что значение поля Тип запуска не равно "Отключено".
Если ферма серверов включает серверы запросов, отделенные от серверов индексирования, повторите шаги 1-5 на каждом сервере запросов.
Выполнение полного обхода контента
Чтобы применить вспомогательный словарь к индексу контента, необходимо выполнить полный обход всех источников контента, содержащих слова, добавленные во вспомогательный словарь. Сведения о выполнении полного обхода см. в статье Обход содержимого (Office SharePoint Server 2007).