Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Журнал ВРМ World

Рабочий проект спецификации для поиска по полному тексту

Наши постоянные читатели, разумеется, помнят об инициативах Рабочих групп XSL и XML Query международной организации W3C. Совсем недавно члены этих групп выпустили два начальных рабочих проекта для поиска по полному тексту. Данные документы: XQuery и XPath Full-Text Requirements (Требования к XQuery и XPath для полнотекстового поиска) и XQuery и XPath Full-Text Use Cases (Случаи использования XQuery и XPath для полнотекстового поиска) - были обнародованы в рамках программы консорциума XML Activity. "Поиск по полному тексту" в этом контексте подразумевает "расширение языка XQuery/XPath". Эта технология предоставляет способ задания запросов к тексту, который снабжен метками, то есть, разбит на последовательность слов, единиц пунктуации и пробелов. Задание меток (tokenization) предусматривает использование функций и операторов, которые обрабатывают относительное позиционирование слов (например, операторы соседства (proximity operators)). Задание меток также допускает функции и операторы, которые взаимодействуют с частью или корнем слова (например, групповые символы (wildcard), ветвления (stemming)).

Согласно первой спецификации, функции XQuery/XPath для полнотекстового поиска должны оперировать экземплярами модели данных (Data Model) XQuery/XPath, в этом случае полнотекстовому поиску не требуется выступать в качестве языка пользовательского интерфейса. Если функция XQuery/XPath полнотекстового поиска может включать более одного синтаксического связывания, синтаксис языка запроса должен быть удобен для чтения и написания, а также быть выражен на XML в виде, который отражает базовую структуру этого запроса. Если функция XQuery/XPath полнотекстового поиска поддерживает поиск по именам элементов и атрибутов, она должна различать содержание элемента, значения атрибутов, имена элементов и атрибуты.

Второй документ - XQuery и XPath Full-Text Use Cases - демонстрирует случаи применения полнотекстовых запросов на языке XML-запросов. В каждом случае задействована определенная функциональность, относящаяся к выполнению полнотекстовых запросов - для наглядности в документе приводятся схема и входные данные. Указанные запросы выполняются по тексту, снабженному метками.

В соответствии с Требованиями рабочего проекта, функции XQuery/XPath для полнотекстового поиска должен обеспечивать - в рамках этой первой версии - следующий минимальный набор функциональности:

  • поиск изолированных слов (single-word search);
  • поиск фраз (phrase search);
  • поддержка исключаемых слов (support for stopwords);
  • одно-символьный суффикс (single character suffix);
  • суффикс, включающий 0 или более символов (0 or more character suffix);
  • префикс, включающий 0 или более символов (0 or more character prefix);
  • инфикс, включающий 0 или более символов (0 or more character infix);
  • поиск соседства (единицы: слова) (proximity searching (unit: words));
  • указание порядка поиска соседства (specification of order in proximity searching);
  • сочетание с использованием AND (combination using AND);
  • сочетание с использованием OR (combination using OR);
  • сочетание с использованием OR (combination using NOT);
  • нормализация слова, диакритики (word normalization, diacritics);
  • ранжирование, релевантность (ranking, relevance).

Второй документ - XQuery и XPath Full-Text Use Cases - включает следующие примеры применения этой технологии:

  1. Случай использования "Слово": запросы по словам и фразам;
  2. Случай использования "Элемент": запросы к элементам и атрибутам XML;
  3. Случай использования "Исключаемые слова": запросы, пропускающие и подменяющие исключаемые слова";
  4. Случай использования "Манипулирование символами": запросы, манипулирующие нормализованными символами и словами, снабженными метками, пробелами и знаками пунктуации;
  5. Случай использования "Групповые символы": групповые символы (префикс, инфикс, суффикс) и запросы по групповым словам;
  6. Случай использования "Ветвления": запросы по словам ветвления;
  7. Случай использования "Тезаурус": запросы, использующие тезаурус, словари и таксономии;
  8. Случай использования "Булево выражение": запросы с Or, And и Not;
  9. Случай использования "Интервал": запросы к отношениям интервала, включая запросы по соседству, окну, предложению и абзацу;
  10. Случай использования "Сложное слово": запросы по сложному слову и фразе;
  11. Случай использования "Метка": запросы, уникальные по метке;
  12. Случай использования "Структура": запросы, использующие оси XPath;
  13. Случай использования "Пропустить": запросы, пропускающие теги и содержание;
  14. Случай использования "Компонуемость": запросы, демонстрирующие компонуемость полного текста с другой функциональностью XQuery;
  15. Случай использования "Сложные": сложные запросы.

По заявлению членов Рабочих групп, предложенные документы являются рабочими проектами, то есть многие вопросы пока остаются открытыми и подлежат дальнейшему рассмотрению. Так, требования, перечисленные в спецификации XQuery и XPath Full-Text Requirements, носят исключительно рекомендательный характер. Что же касается второго проекта, то Рабочие группы не несут никакой ответственности за возможные последствия реализации сценариев применения данной технологии.