перечисление 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 |