Правила выбора фильтра
Следующие правила определяют выбор фильтра, используемого при создании индекса (фильтры перечислены в порядке предпочтения):
-
для столбца типа 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;
-
-
для столбца типа EXTFILE:
-
фильтр, заданный вторым (необязательным) параметром функции EXTFILE;
-
фильтр, заданный по умолчанию для столбца;
-
фильтр, заданный по умолчанию для расширения файла (с учётом регистра);
-
DOCRTF2TEXT, ASCXML2TEXT или UNIXML2TEXT, если найдена сигнатура файла форматов doc, xls, ppt, rtf, pdf, ps, xml;
-
UNITEXT2TEXT в случае наличия BOM (Byte Order Mark) в начале документа (последовательность байт ffh feh или feh ffh);
-
ASCTEXT2TEXT;
-
-
для столбца типа NCHAR, NCHAR VARYING:
-
фильтр, заданный по умолчанию для столбца;
-
UNITEXT2TEXT;
-
-
для столбца типа 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, определяется однозначно.