Spec-Zone.ru › Elasticsearch 8
›Руководство по Elasticsearch [8.17] ›Конвейеры загрузки данных

Конвейеры загрузки данных в поиске

Вы можете управлять конвейерами загрузки данных с помощью API Elasticsearch или пользовательских интерфейсов Kibana.

Пользовательский интерфейс Содержание в разделе Поиск предоставляет набор инструментов для создания и управления индексами, оптимизированными для задач поиска (данные, не относящиеся к временным рядам). Вы также можете управлять своими конвейерами загрузки данных в этом интерфейсе.

Найти конвейеры в пользовательском интерфейсе Содержание

Чтобы работать с конвейерами загрузки данных с помощью этих инструментов пользовательского интерфейса, вы будете использовать вкладку Конвейеры в оптимизированном для поиска индексе Elasticsearch.

Чтобы найти эту вкладку в пользовательском интерфейсе Kibana:

  1. Перейдите к Поиск > Содержание > Индексы Elasticsearch.
  2. Выберите индекс, с которым хотите работать. Например, search-my-index.
  3. На странице обзора индекса откройте вкладку Конвейеры.
  4. Отсюда вы можете следовать инструкциям для создания настраиваемых конвейеров и настройки конвейеров для инференции ML.

Вкладка выделена на этом снимке экрана:

ingest pipeline ent search ui

Обзор

Эти инструменты могут быть особенно полезны, предоставляя уровень настройки и постобработки документов. Например:

  • обеспечение согласованного извлечения текста из бинарных типов данных
  • обеспечение согласованного форматирования
  • обеспечение согласованных этапов очистки (удаление ПИБ, таких как номера телефонов или номера социального страхования)

Настройка и управление готовыми к производству конвейерами с нуля может быть сложной задачей. Необходимо учитывать такие аспекты, как обработка ошибок, условное выполнение, последовательность, управление версиями и модульность.

С этой целью, при создании индексов для задач поиска (включая Elastic веб-бот, коннекторы. и индексы API), каждый индекс уже имеет настроенный конвейер с несколькими процессорами, которые оптимизируют ваш контент для поиска.

Этот конвейер называется ent-search-generic-ingestion. Хотя это «управляемый» конвейер (то есть, его не следует изменять), вы можете просмотреть его подробности в пользовательском интерфейсе Kibana или с помощью API Elasticsearch. Вы также можете подробнее ознакомиться с его содержимым ниже.

Вы можете управлять запуском некоторых из этих процессоров. Хотя все функции включены по умолчанию, они могут быть отключены. Для Elastic веб-бота и коннекторов. вы можете отключить (или включить обратно) по индексу, и ваш выбор сохраняется. Для индексов API вы можете отключить (или включить обратно), включив определенные поля в ваши документы. См. подробности ниже.

На уровне развертывания вы можете изменить настройки по умолчанию для всех новых индексов. Это не повлияет на существующие индексы.

Каждый индекс также предоставляет возможность легко создавать индекс-специфичные конвейеры загрузки данных с настраиваемой обработкой. Если вам нужна дополнительная гибкость, вы можете создать настраиваемый конвейер, перейдя в настройки конвейера и выбрав «скопировать и настроить». Это заменит использование индексом ent-search-generic-ingestion тремя новыми сгенерированными конвейерами:

  1. <index-name>
  2. <index-name>@custom
  3. <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.

Процессоры
  1. attachment - этот процессор использует процессор Прикрепление для преобразования любых бинарных данных, хранящихся в поле _attachment документа, в вложенный объект обычного текста и метаданных.
  2. set_body - этот процессор использует процессор Установить для копирования любого извлеченного обычного текста из предыдущего шага и сохранения его в документе в поле body.
  3. remove_replacement_chars - этот процессор использует процессор Gsub для удаления символов, таких как "�" из поля body.
  4. remove_extra_whitespace - этот процессор использует процессор Gsub для замены последовательных пробельных символов одним пробелом в поле body. Хотя это не идеально подходит для всех случаев использования (см. ниже, как отключить), это может гарантировать, что в поисковых результатах отображается больше контента и выделений, а не пустое пространство.
  5. trim - этот процессор использует процессор Trim для удаления любых оставшихся начальных или конечных пробелов из поля body.
  6. 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API