Конвейеры загрузки данных в поиске
Вы можете управлять конвейерами загрузки данных с помощью API Elasticsearch или пользовательских интерфейсов Kibana.
Пользовательский интерфейс Содержание в разделе Поиск предоставляет набор инструментов для создания и управления индексами, оптимизированными для задач поиска (данные, не относящиеся к временным рядам). Вы также можете управлять своими конвейерами загрузки данных в этом интерфейсе.
Найти конвейеры в пользовательском интерфейсе Содержание
Чтобы работать с конвейерами загрузки данных с помощью этих инструментов пользовательского интерфейса, вы будете использовать вкладку Конвейеры в оптимизированном для поиска индексе Elasticsearch.
Чтобы найти эту вкладку в пользовательском интерфейсе Kibana:
- Перейдите к Поиск > Содержание > Индексы Elasticsearch.
- Выберите индекс, с которым хотите работать. Например,
search-my-index. - На странице обзора индекса откройте вкладку Конвейеры.
- Отсюда вы можете следовать инструкциям для создания настраиваемых конвейеров и настройки конвейеров для инференции ML.
Вкладка выделена на этом снимке экрана:
Обзор
Эти инструменты могут быть особенно полезны, предоставляя уровень настройки и постобработки документов. Например:
- обеспечение согласованного извлечения текста из бинарных типов данных
- обеспечение согласованного форматирования
- обеспечение согласованных этапов очистки (удаление ПИБ, таких как номера телефонов или номера социального страхования)
Настройка и управление готовыми к производству конвейерами с нуля может быть сложной задачей. Необходимо учитывать такие аспекты, как обработка ошибок, условное выполнение, последовательность, управление версиями и модульность.
С этой целью, при создании индексов для задач поиска (включая Elastic веб-бот, коннекторы. и индексы API), каждый индекс уже имеет настроенный конвейер с несколькими процессорами, которые оптимизируют ваш контент для поиска.
Этот конвейер называется ent-search-generic-ingestion. Хотя это «управляемый» конвейер (то есть, его не следует изменять), вы можете просмотреть его подробности в пользовательском интерфейсе Kibana или с помощью API Elasticsearch. Вы также можете подробнее ознакомиться с его содержимым ниже.
Вы можете управлять запуском некоторых из этих процессоров. Хотя все функции включены по умолчанию, они могут быть отключены. Для Elastic веб-бота и коннекторов. вы можете отключить (или включить обратно) по индексу, и ваш выбор сохраняется. Для индексов API вы можете отключить (или включить обратно), включив определенные поля в ваши документы. См. подробности ниже.
На уровне развертывания вы можете изменить настройки по умолчанию для всех новых индексов. Это не повлияет на существующие индексы.
Каждый индекс также предоставляет возможность легко создавать индекс-специфичные конвейеры загрузки данных с настраиваемой обработкой. Если вам нужна дополнительная гибкость, вы можете создать настраиваемый конвейер, перейдя в настройки конвейера и выбрав «скопировать и настроить». Это заменит использование индексом ent-search-generic-ingestion тремя новыми сгенерированными конвейерами:
-
<index-name> -
<index-name>@custom -
<index-name>@ml-inference
Как и ent-search-generic-ingestion, первый из них «управляемый», но два других можно и нужно изменить в соответствии с вашими потребностями. Вы можете просмотреть эти конвейеры с помощью инструментов платформы (пользовательский интерфейс Kibana, API Elasticsearch), а также можете подробнее ознакомиться с их содержимым ниже.
Настройки конвейера
Помимо самого конвейера, у вас есть несколько параметров конфигурации, которые контролируют отдельные функции конвейеров.
- Извлечь бинарное содержимое - Это управляет тем, должны ли обрабатываться бинарные документы и должен ли извлекаться любой текстовый контент.
- Уменьшить пробелы - Это управляет тем, следует ли удалять последовательные, начальные и конечные пробелы. Это может помочь отобразить больше контента в некоторых поисковых опытах.
- Выполнить инференцию ML - Доступно только для индекс-специфичных конвейеров. Это управляет тем, будет ли выполняться необязательный конвейер
<index-name>@ml-inference. Включено по умолчанию.
Для Elastic веб-бота и коннекторов вы можете включить или отключить по индексу. Эти настройки хранятся в Elasticsearch в индексе .elastic-connectors в документе, соответствующем конкретному индексу. Эти настройки можно изменить непосредственно там или через пользовательский интерфейс Kibana по адресу Поиск > Содержание > Индексы > <ваш индекс> > Конвейеры > Настройки.
Вы также можете изменить значения по умолчанию на уровне развертывания. Эти настройки хранятся в карте Elasticsearch для .elastic-connectors в разделе _meta. Эти настройки можно изменить непосредственно там или через пользовательский интерфейс Kibana на вкладке Поиск > Содержание > Настройки. Изменение значений по умолчанию на уровне развертывания не повлияет на существующие индексы, но повлияет только на значения по умолчанию для вновь созданных индексов. Эти значения по умолчанию по-прежнему можно переопределить с помощью индекс-специфических настроек.
Использование API
Эти настройки не сохраняются для индексов, которые «используют API». Вместо этого изменение этих настроек в реальном времени изменяет пример запроса cURL, который отображается. Обратите внимание, что пример документа в запросе cURL содержит три поля с префиксом подчёркивание:
{
...
"_extract_binary_content": true,
"_reduce_whitespace": true,
"_run_ml_inference": true
} Пропуск одного из этих специальных полей эквивалентно указанию его со значением false.
Также необходимо указать конвейер в вашем запросе индексирования. Это также показано в примере запроса cURL.
Если конвейер не указан, поля с префиксом подчёркивание будут фактически проиндексированы и не повлияют на поведение обработки.
Подробности
ent-search-generic-ingestion Справочник
Вы можете получить доступ к этому конвейеру с помощью API конвейеров загрузки данных Elasticsearch или через пользовательский интерфейс Kibana Управление стеком > Конвейеры загрузки данных.
Этот конвейер является «управляемым» конвейером. Это означает, что его не следует редактировать. Редактирование/обновление этого конвейера вручную может привести к нежелательному поведению или затруднениям при обновлении в будущем. Если вы хотите внести изменения, мы рекомендуем использовать индекс-специфичные конвейеры (см. ниже), а именно конвейер <index-name>@custom.
Процессоры
-
attachment- этот процессор использует процессор Прикрепление для преобразования любых бинарных данных, хранящихся в поле_attachmentдокумента, в вложенный объект обычного текста и метаданных. -
set_body- этот процессор использует процессор Установить для копирования любого извлеченного обычного текста из предыдущего шага и сохранения его в документе в полеbody. -
remove_replacement_chars- этот процессор использует процессор Gsub для удаления символов, таких как "�" из поляbody. -
remove_extra_whitespace- этот процессор использует процессор Gsub для замены последовательных пробельных символов одним пробелом в полеbody. Хотя это не идеально подходит для всех случаев использования (см. ниже, как отключить), это может гарантировать, что в поисковых результатах отображается больше контента и выделений, а не пустое пространство. -
trim- этот процессор использует процессор Trim для удаления любых оставшихся начальных или конечных пробелов из поляbody. -
remove_meta_fields- этот последний этап конвейера использует процессор Удалить для удаления специальных полей, которые могли быть использованы где-либо еще в конвейере, будь то временное хранилище или параметры управления потоком.
Параметры управления потоком
Конвейер ent-search-generic-ingestion не всегда запускает все процессоры. Он использует функцию конвейеров загрузки данных для условного запуска процессоров на основе содержимого каждого отдельного документа.
-
_extract_binary_content- если это поле присутствует и имеет значениеtrueв документе-источнике, конвейер попытается запустить процессорыattachment,set_bodyиremove_replacement_chars. Обратите внимание, что для того, чтобы процессорattachmentимел какой-либо вывод, в документе также должно быть заполнено поле_attachmentс двоичными данными в кодировке base64. Если поле_extract_binary_contentотсутствует или имеет значениеfalseв документе-источнике, эти процессоры будут пропущены. -
_reduce_whitespace- если это поле присутствует и имеет значениеtrueв документе-источнике, конвейер попытается запустить процессорыremove_extra_whitespaceиtrim. Эти процессоры применяются только к полюbody. Если поле_reduce_whitespaceотсутствует или имеет значениеfalseв документе-источнике, эти процессоры будут пропущены.
Роботы-пауки, родные коннекторы и клиенты коннекторов автоматически добавляют эти параметры управления потоком на основе настроек на вкладке «Конвейер» индекса. Чтобы контролировать настройки новых индексов при их создании, см. настройки контента для всего развертывания. См. Настройки конвейера.
Конвейеры поглощения, специфичные для индекса
В пользовательском интерфейсе Kibana для вашего индекса, щелкнув вкладку «Конвейеры», а затем Настройки > Копировать и настроить, вы можете быстро сгенерировать 3 конвейера, специфичных для вашего индекса. Эти 3 конвейера заменяют ent-search-generic-ingestion для индекса. При этом ничего не потеряется, так как конвейер <index-name> является надмножеством функциональности по сравнению с конвейером ent-search-generic-ingestion.
Кнопка «копировать и настроить» недоступна для всех уровней подписки Elastic. Обратитесь к страницам подписок Elastic для Elastic Cloud и самоуправляемых развертываний.
<index-name> Справочник
Этот конвейер выглядит и ведет себя очень похоже на конвейер ent-search-generic-ingestion, но с двумя дополнительными процессорами.
Не следует переименовывать этот конвейер.
Этот конвейер является «управляемым» конвейером. Это означает, что он не предназначен для редактирования. Редактирование/обновление этого конвейера вручную может привести к непредвиденному поведению или затруднению будущего обновления. Если вы хотите внести изменения, мы рекомендуем использовать конвейер <index-name>@custom.
Процессоры
В дополнение к процессорам, унаследованным от конвейера ent-search-generic-ingestion, конвейер, специфичный для индекса, также определяет:
-
index_ml_inference_pipeline- для этого используется процессор Конвейер для запуска конвейера<index-name>@ml-inference. Этот процессор будет запущен только в том случае, если исходный документ содержит поле_run_ml_inferenceсо значениемtrue. -
index_custom_pipeline- для этого используется процессор Конвейер для запуска конвейера<index-name>@custom.
Параметры управления потоком
Как и конвейер ent-search-generic-ingestion, конвейер <index-name> не всегда выполняет все процессоры. В дополнение к параметрам управления потоком _extract_binary_content и _reduce_whitespace, конвейер <index-name> также поддерживает:
-
_run_ml_inference- если это поле присутствует и имеет значениеtrueв документе-источнике, конвейер попытается запустить процессорindex_ml_inference_pipeline. Если поле_run_ml_inferenceотсутствует или имеет значениеfalseв документе-источнике, этот процессор будет пропущен.
Роботы-пауки, родные коннекторы и клиенты коннекторов автоматически добавляют эти параметры управления потоком на основе настроек на вкладке «Конвейер» индекса. Чтобы контролировать настройки новых индексов при их создании, см. настройки контента для всего развертывания. См. Настройки конвейера.
<index-name>@ml-inference Справочник
Этот конвейер изначально пустой (без процессоров), но его можно добавить в пользовательском интерфейсе Kibana, либо на вкладке «Конвейеры» вашего индекса, либо на странице Управление стеком > Конвейеры поглощения. В отличие от конвейера ent-search-generic-ingestion и конвейера <index-name>, этот конвейер НЕ является «управляемым».
В пользовательском интерфейсе Контент можно добавить один или несколько конвейеров вывода ML к индексу. Этот конвейер послужит контейнером для всех конвейеров вывода ML, настроенных для индекса. Каждый конвейер вывода ML, добавленный в индекс, упоминается в <index-name>@ml-inference с использованием процессора pipeline.
Не следует переименовывать этот конвейер.
Для управления моделями ML и конвейерами вывода ML, использующими эти модели, требуется разрешение monitor_ml кластера Elasticsearch.
<index-name>@custom Справочник
Этот конвейер изначально пустой (без процессоров), но его можно добавить в пользовательском интерфейсе Kibana, либо на вкладке «Конвейеры» вашего индекса, либо на странице Управление стеком > Конвейеры поглощения. В отличие от конвейера ent-search-generic-ingestion и конвейера <index-name>, этот конвейер НЕ является «управляемым».
Рекомендуется вносить дополнения и изменения в этот конвейер при условии сохранения его имени. Это обеспечивает удобную возможность добавления пользовательской обработки и преобразований данных. Обязательно прочитайте документацию по конвейерам поглощения, чтобы узнать о доступных вариантах.
Не следует переименовывать этот конвейер.
Примечания по обновлению
Развернуть, чтобы увидеть примечания по обновлению
-
app_search_crawler- начиная с версии 8.3, веб-паук App Search использует этот конвейер для извлечения двоичного контента. Подробнее об этом конвейере и его использовании можно узнать в Руководстве по App Search. При обновлении с 8.3 до 8.5+ обратите внимание на любые внесенные вами изменения в конвейерapp_search_crawler. Эти изменения следует повторно применить к конвейеру<index-name>@customкаждого индекса, чтобы обеспечить согласованный опыт обработки данных. В версии 8.5+ настройка индекса для включения двоичного контента требуется в дополнение к настройкам, упомянутым в Руководстве по App Search. -
ent_search_crawler- начиная с версии 8.4, веб-паук Elastic использует этот конвейер для извлечения двоичного контента. Подробнее об этом конвейере и его использовании можно узнать в Руководстве по веб-пауку Elastic. При обновлении с 8.4 до 8.5+ обратите внимание на любые внесенные вами изменения в конвейерent_search_crawler. Эти изменения следует повторно применить к конвейеру<index-name>@customкаждого индекса, чтобы обеспечить согласованный опыт обработки данных. В версии 8.5+ настройка индекса для включения двоичного контента требуется в дополнение к настройкам, упомянутым в Руководстве по веб-пауку Elastic. -
ent-search-generic-ingestion- начиная с версии 8.5, родные коннекторы, клиенты коннекторов и новые (8.4 и выше) индексы веб-паука Elastic по умолчанию будут использовать этот конвейер. Вы можете подробнее о конвейере выше. Поскольку этот конвейер является «управляемым», любые внесенные изменения вapp_search_crawlerи/илиent_search_crawlerне должны вноситься вent-search-generic-ingestion. Вместо этого, если такие пользовательские настройки желательны, вы должны использовать конвейеры поглощения, специфичные для индекса, разместив все изменения в конвейере(ах)<index-name>@custom.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ingest-pipeline-search.html