Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›Конвейеры преобразования данных ›Обогащение данных

Пример: Обогащение данных на основе точных значений

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

В следующем примере создается match политика обогащения, которая добавляет имя пользователя и контактную информацию к поступающим документам на основе адреса электронной почты. Затем она добавляет match политику обогащения в процессор в конвейере преобразования данных.

Используйте API создания индекса или API индексирования для создания исходного индекса.

Следующий запрос API индексирования создает исходный индекс и индексирует новый документ в этот индекс.

PUT /users/_doc/1?refresh=wait_for
{
  "email": "mardy.brown@asciidocsmith.com",
  "first_name": "Mardy",
  "last_name": "Brown",
  "city": "New Orleans",
  "county": "Orleans",
  "state": "LA",
  "zip": 70116,
  "web": "mardy.asciidocsmith.com"
}

Используйте API создания политики обогащения для создания политики обогащения с типом match. Эта политика должна включать:

  • Один или несколько исходных индексов
  • match_field, поле из исходных индексов, используемое для сопоставления поступающих документов
  • Поля для обогащения из исходных индексов, которые вы хотите добавить к поступающим документам
PUT /_enrich/policy/users-policy
{
  "match": {
    "indices": "users",
    "match_field": "email",
    "enrich_fields": ["first_name", "last_name", "city", "zip", "state"]
  }
}

Используйте API выполнения политики обогащения для создания индекса обогащения для политики.

POST /_enrich/policy/users-policy/_execute

Используйте API создания или обновления конвейера, чтобы создать конвейер преобразования данных. В конвейере добавьте процессор обогащения, который включает:

  • Вашу политику обогащения.
  • field поступающих документов, используемых для сопоставления документов из индекса обогащения.
  • target_field, используемый для хранения добавленных данных обогащения для поступающих документов. Это поле содержит match_field и enrich_fields, указанные в вашей политике обогащения.
PUT /_ingest/pipeline/user_lookup
{
  "processors" : [
    {
      "enrich" : {
        "description": "Add 'user' data based on 'email'",
        "policy_name": "users-policy",
        "field" : "email",
        "target_field": "user",
        "max_matches": "1"
      }
    }
  ]
}

Используйте конвейер преобразования данных для индексирования документа. Поступающий документ должен содержать field, указанное в вашем процессоре обогащения.

PUT /my-index-000001/_doc/my_id?pipeline=user_lookup
{
  "email": "mardy.brown@asciidocsmith.com"
}

Чтобы проверить, что процессор обогащения сопоставил и добавил соответствующие данные поля, используйте API получения для просмотра индексированного документа.

GET /my-index-000001/_doc/my_id

API возвращает следующий ответ:

{
  "found": true,
  "_index": "my-index-000001",
  "_type": "_doc",
  "_id": "my_id",
  "_version": 1,
  "_seq_no": 55,
  "_primary_term": 1,
  "_source": {
    "user": {
      "email": "mardy.brown@asciidocsmith.com",
      "first_name": "Mardy",
      "last_name": "Brown",
      "zip": 70116,
      "city": "New Orleans",
      "state": "LA"
    },
    "email": "mardy.brown@asciidocsmith.com"
  }
}

© 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/7.17/match-enrich-policy-type.html

Spec-Zone.ru

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