Правила выбора фильтра

Следующие правила определяют выбор фильтра, используемого при создании индекса (фильтры перечислены в порядке предпочтения):

  1. для столбца типа BLOB:

    • фильтр, для которого значение поля $$$ID в таблице $$$FILTER равно номеру типа данных BLOB (если отличен от 0);

    • фильтр, заданный по умолчанию для столбца;

    • DOCRTF2TEXT, ASCXML2TEXT или UNIXML2TEXT, если найдена сигнатура файла форматов doc, xls, ppt, rtf, pdf, ps, xml;

    • UNITEXT2TEXT в случае наличия BOM (Byte Order Mark) в начале документа (последовательность байт ffh feh или feh ffh);

    • ASCTEXT2TEXT;

  2. для столбца типа EXTFILE:

    • фильтр, заданный вторым (необязательным) параметром функции EXTFILE;

    • фильтр, заданный по умолчанию для столбца;

    • фильтр, заданный по умолчанию для расширения файла (с учётом регистра);

    • DOCRTF2TEXT, ASCXML2TEXT или UNIXML2TEXT, если найдена сигнатура файла форматов doc, xls, ppt, rtf, pdf, ps, xml;

    • UNITEXT2TEXT в случае наличия BOM (Byte Order Mark) в начале документа (последовательность байт ffh feh или feh ffh);

    • ASCTEXT2TEXT;

  3. для столбца типа NCHAR, NCHAR VARYING:

    • фильтр, заданный по умолчанию для столбца;

    • UNITEXT2TEXT;

  4. для столбца типа CHAR, VARCHAR:

    • фильтр, заданный по умолчанию для столбца;

    • фильтр неформатированного текста в кодировке столбца;

    • фильтры ASCXML2TEXT и UNIXML2TEXT используются для файлов в форматах XML, XHTML, HTML. Тем не менее, файлы этих форматов обрабатываются существенно различным образом: в случае XML извлекаются пары < имя атрибута >=< значение атрибута >, которые могут быть включены в индекс, если задан флаг XML в конструкции CREATE PHRASE INDEX.

В случае HTML и XHTML документов атрибуты элементов текста игнорируются. Исключение составляют META-элементы, содержащие метаинформацию, касающуюся документа. META-элемент содержит 2 обязательных атрибута:

NAME=Имя1 (или http-equiv) и CONTENT=Значение1.

В случае, если Имя1 равно "Author", "Keywords" или "Description", в фразовый индекс добавляются пары < Имя1 >=< Значение1 >.

Если < Имя1 >="Content-Type", то < Значение1 > сканируется на предмет наличия информации об используемой документом кодировки, заданной в виде "charset=имя кодировки".

Формат файла определяется по наличию сигнатуры "< ?xml" в начале документа (которой, возможно, предшествует BOM). В случае её отсутствия считается, что документ создан в формате HTML. В противном случае тип документа, согласно спецификации форматов XML и XHTML, определяется однозначно.