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


перечисление IFILTER_INIT (filter.h)

[Служба индексирования больше не поддерживается в Windows XP и недоступна для использования в Windows 8. Вместо этого используйте Windows Search для поиска на стороне клиента и Microsoft Search Server Express для поиска на стороне сервера.]

Флаги, управляющие процессом фильтрации.

Синтаксис

typedef enum tagIFILTER_INIT {
  IFILTER_INIT_CANON_PARAGRAPHS = 1,
  IFILTER_INIT_HARD_LINE_BREAKS = 2,
  IFILTER_INIT_CANON_HYPHENS = 4,
  IFILTER_INIT_CANON_SPACES = 8,
  IFILTER_INIT_APPLY_INDEX_ATTRIBUTES = 16,
  IFILTER_INIT_APPLY_OTHER_ATTRIBUTES = 32,
  IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES = 256,
  IFILTER_INIT_INDEXING_ONLY = 64,
  IFILTER_INIT_SEARCH_LINKS = 128,
  IFILTER_INIT_FILTER_OWNED_VALUE_OK = 512,
  IFILTER_INIT_FILTER_AGGRESSIVE_BREAK = 1024,
  IFILTER_INIT_DISABLE_EMBEDDED = 2048,
  IFILTER_INIT_EMIT_FORMATTING = 4096
} IFILTER_INIT;

Константы

 
IFILTER_INIT_CANON_PARAGRAPHS
Значение: 1
Разрывы абзаца должны быть помечены разделителем абзаца в Юникоде (0x2029).
IFILTER_INIT_HARD_LINE_BREAKS
Значение: 2
Мягкие возвраты, такие как символ новой строки в Word, должны быть заменены жесткими? РАЗДЕЛИТЕЛЬ СТРОК (0x2028). Существующие жесткие значения можно удвоить. Возврат каретки (0x000D), передача строки (0x000A) или возврат каретки и передача строки в сочетании должны считаться жестким возвратом. Цель состоит в том, чтобы включить совпадения между шаблонами и выражениями, которые соответствуют наблюдаемым разрывам строк.
IFILTER_INIT_CANON_HYPHENS
Значение: 4
Различные текстовые программы имеют формы дефисов, которые не представлены в наборе символов узла, такие как необязательные дефисы (появляются только в конце строки) и неразрывные дефисы. Этот флаг указывает, что необязательные дефисы должны быть преобразованы в значения NULL, а неразрывные дефисы — в обычные дефисы (0x2010) или ДЕФИСЫ-МИНУСЫ (0x002D).
IFILTER_INIT_CANON_SPACES
Значение: 8
Так же, как флаг IFILTER_INIT_CANON_HYPHENS стандартизирует дефисы, этот стандартизирует пробелы. Все специальные пробелы, такие как неразрывные пробелы, преобразуются в стандартный пробел (0x0020).
IFILTER_INIT_APPLY_INDEX_ATTRIBUTES
Значение: 16
Указывает, что клиент хочет разделить текст на блоки, представляющие внутренние свойства типа значения.
IFILTER_INIT_APPLY_OTHER_ATTRIBUTES
Значение: 32
Все свойства, не охватываемые флагами IFILTER_INIT_APPLY_INDEX_ATTRIBUTES и IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES, должны быть выданы.
IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES
Значение: 256
Указывает, что клиент хочет разделить текст на блоки, представляющие свойства, определенные в процессе индексирования.
IFILTER_INIT_INDEXING_ONLY
Значение: 64
Оптимизирует IFilter для индексирования, так как клиент вызывает метод IFilter::Init только один раз и не вызывает IFilter::BindRegion. Это исключает возможность доступа к блоку как до, так и после доступа к другому блоку.
IFILTER_INIT_SEARCH_LINKS
Значение: 128
Процесс извлечения текста должен рекурсивно выполнять поиск всех связанных объектов в документе. Если ссылка недоступна, вызов IFilter::GetChunk , который получил бы первый блок ссылки, должен вернуть FILTER_E_LINK_UNAVAILABLE.
IFILTER_INIT_FILTER_OWNED_VALUE_OK
Значение: 512
Процесс индексирования содержимого может возвращать значения свойств, заданные фильтром.
IFILTER_INIT_FILTER_AGGRESSIVE_BREAK
Значение: 1024
TBD
IFILTER_INIT_DISABLE_EMBEDDED
Значение: 2048
TBD
IFILTER_INIT_EMIT_FORMATTING
Значение: 4096
TBD

Комментарии

Как правило, вывод текста методом IFilter::GetText должен точно соответствовать фактическому тексту документа. Однако для достижения максимальной совместимости желательно обеспечить некоторую стандартизацию общих признаков. К этим функциям относятся разрывы абзацев, разрывы строк, дефисы и пробелы. Серверы интерфейса IFilter также могут внедрять в текст символы NULL, которые почти игнорируются клиентами. То есть символ Юникода 0x0000 полностью игнорируется, а 0x0001 обрабатывается как разбиение по словам.

Четыре флага управляют стандартизацией текста: IFILTER_INIT_CANON_PARAGRAPHS, IFILTER_INIT_HARD_LINE_BREAKS, IFILTER_INIT_CANON_HYPHENS и IFILTER_INIT_CANON_SPACES.

Разным клиентам интерфейса IFilter требуется разное представление объекта. Три флага, IFILTER_INIT_APPLY_INDEX_ATTRIBUTES, IFILTER_INIT_APPLY_CRAWL_ATTRIBUTES и IFILTER_INIT_APPLY_OTHER_ATTRIBUTES управляют набором свойств, которые должны применяться к блокам. Кроме того, определенные свойства можно запрашивать в вызовах метода IFilter::Init в виде массива размеров cAttributes, хранящихся в aAttributes.

Реализации интерфейса IFilter должны хранить некоторые фрагменты информации при выполнении операций, отличных от индексирования содержимого. IFILTER_INIT_INDEXING_ONLY оптимизирует фильтр для индексирования.

В целях просмотра желательно выполнять поиск по ссылкам, а также в документе и любых внедренных объектах. IFILTER_INIT_SEARCH_LINKS указывает рекурсивный поиск по всем ссылкам.

Некоторые реализации интерфейса IFilter могут создавать значения свойств в процессе индексирования содержимого, и IFILTER_INIT_FILTER_OWNED_VALUE_OK указывает на то, что эти значения можно возвращать.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть filter.h

См. также раздел

Ifilter