Создавайте Metri c в эластичном поиске с использованием конвейеров при сохранении документа - PullRequest
0 голосов
/ 07 января 2020

Мое приложение хранит метаданные github repo и сохраняет их вasticsearch. Я хотел бы выдать метри c, взятую из некоторых полей документа репо при его создании или обновлении. Проще говоря ... при записи документа "a" в elasti c index foo также сохраните метри c, взятую из полей внутри документа "a", и поместите их в индексную строку.

Я думал, что проглотит Конвейеры позволили бы мне сделать это, но похоже, что они предназначены в первую очередь для преобразования данных ... в этом случае целевой индекс, задав для поля _index новое значение.

Итак, с указанием PUT для моего индекса репо с этим документом

{
   "repoFullName":"foo",
   "team":"myTeam",
   "releaseVersion":1.2",
   ...lots of other git repo data here as well
}

Что я добавляю в свой конвейер загрузки, чтобы сохранить документ как есть и выдать метри c в другой индекс?

Вот мой лучший снимок содержимого конвейера загрузки, но, опять же, я знаю, что это только перенаправит данные в индекс metri c и не сохранит как исходный do c, так и metri c.

PUT _ingest / pipe / emit_metri c

{
 "description": "A pipeline for emitting a version string metric",
 "processors": [
    "pipeline": {
       "set" : {
          "field" : "_index",
          "value" : "metric_index",
       },
       "set" : {
          "field" : "repo.releaseVersion",
          "value" : "{{releaseVersion}}"
       }       
    }
  ]
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...