Поделиться через


Настройка файлов тезауруса

Изменения: 12 декабря 2006 г.

Все файлы тезауруса в составе Microsoft SQL Server 2005 имеют следующий формат:

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out
    <thesaurus xmlns="x-schema:tsSchema.xml">
      <diacritics = false/>
        <expansion>
            <sub>Internet Explorer</sub>
            <sub>IE</sub>
            <sub>IE5</sub>
        </expansion>
        <replacement>
            <pat>NT5</pat>
            <pat>W2K</pat>
            <sub>Windows 2000</sub>
        </replacement>
        <expansion>
            <sub>run</sub>
            <sub>jog</sub>
        </expansion>
    </thesaurus>
-->
</XML>

В каждом файле тезауруса имеется один или несколько следующих разделов:

  • Расширяющий набор.
    Расширяющий набор содержит группу синонимов. В исходном коде синонимы обозначаются «подстановочными» тегами (<sub> и </sub>). Запросы, содержащие слова, которые совпадают с одним из подстановочных слов, расширяются таким образом, чтобы включать в себя другие подстановочные слова в этом расширяющем наборе.
  • Заменяющий набор.
    Заменяющий набор содержит текстовый шаблон, заменяемый подстановочным набором. Пример см. в подразделе «Заменяющий набор» далее в этом разделе.

Кроме того, файл тезауруса содержит тег <diacritics = false/>. Значение false указывает, что в терминах, указанных в расширяющем и заменяющем наборах, не учитываются диакритические знаки. Чтобы осуществить поиск с помощью тезауруса с учетом диакритических знаков, измените этот тег на <diacritics = true/>. Например, предположим, что в запросе полнотекстового поиска необходимо заменить шаблон «café» другими шаблонами. Если файл тезауруса не учитывает диакритические знаки, то полнотекстовый поиск замещает шаблоны «café» и «cafe». Если файл тезауруса учитывает диакритические знаки, то полнотекстовый поиск замещает только шаблон «café». Обратите внимание, что эту настройку можно применить для файла только единожды и для всех шаблонов поиска в файле. Этот параметр невозможно указать для отдельных шаблонов.

ms345186.note(ru-ru,SQL.90).gifВажно!
При редактировании файлов тезауруса с помощью текстовых редакторов эти файлы необходимо сохранять в формате Юникод с указанием меток порядка байтов.

Расширяющий набор

Расширяющие наборы заключены в теги <expansion>. Внутри тега <expansion> указываются одна или несколько подстановок, заключенных в теги <sub>. В расширяющем наборе можно указать группу подстановок, являющихся синонимами.

Например, можно изменить раздел расширения так, чтобы подстановки «писатель», «автор» и «журналист» считались синонимами. Полнотекстовые запросы, содержащие слова, совпадающие с одним из подстановочных слов, расширяются таким образом, чтобы включать в себя другие подстановочные слова в этом расширяющем наборе. Следовательно, в предыдущем примере при выполнении запроса FORMS OF THESAURUS или FREETEXT со словом «автор» после полнотекстового поиска будут также возвращены результаты, содержащие слова «писатель» и «журналист».

Для этого примера раздел расширяющего набора должен выглядеть следующим образом:

 <expansion>
         <sub>writer</sub>
         <sub>author</sub>
         <sub>journalist</sub>
 </expansion>

Заменяющий набор

Заменяющие наборы заключены в теги <replacement>. Внутри тега <replacement> указываются один или несколько шаблонов, заключенных в теги <pat>. Можно указать одну или несколько подстановок, заключенных в теги <sub>. Можно указать шаблон, заменяемый подстановочным набором. Шаблоны и подстановки могут содержать одно слово или последовательность слов.

Например, пусть необходимо заменить слово-шаблон «W2K» словами-подстановками «Windows 2000» или «XP». При выполнении полнотекстового запроса со словом «W2K» полнотекстовый поиск возвращает только результаты, содержащие слова «Windows 2000» или «XP». Результаты, содержащие слово «W2K», не возвращаются. Это происходит потому, что шаблон «W2K» заменен шаблонами «Windows 2000» и «XP».

Для этого примера раздел заменяющего набора должен выглядеть следующим образом:

 <replacement>
         <pat>W2K</pat>
         <sub>Windows 2000</sub>
         <sub>XP</sub>
 </replacement>

Если имеются два заменяющих набора с одинаковыми сравниваемыми шаблонами, приоритет имеет самый длинный из них. Например, если определены следующие заменяющие наборы, при выполнении запроса FORMS OF THESAURUS по фразе «интерактивное сообщество Internet Explorer», набор «Internet Explorer» имеет приоритет перед набором «Internet». Следовательно, запрос будет обрабатываться так, как будто он сформирован по фразам «интерактивное сообщество IE» или «интерактивное сообщество IE 5».

<replacement>
         <pat>Internet</pat>
         <sub>intranet</sub>
</replacement>

и

<replacement>
         <pat>Internet Explorer</pat>
         <sub>IE</sub>
         <sub>IE 5</sub>
</replacement>

См. также

Основные понятия

Архитектура компонента Full-Text Search
Тезаурус
Полнотекстовый поиск

Другие ресурсы

CONTAINS (Transact-SQL)
FREETEXT (Transact-SQL)
FREETEXTTABLE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Измененное содержимое
  • Исправлен синтаксис тега <diacritics_sensitive> на <diacritics = false/>, и обновлено объяснение этого тега.
Новое содержимое
  • Добавлено важное замечание о том, что файлы тезауруса необходимо сохранять в формате Юникод с указанием меток порядка байтов.

17 июля 2006 г.

Новое содержимое
  • Объяснено значение тега <diacritics_sensitive>.