Как использовать плагин Elasticsearch Ingest Attachment Processor в Java - PullRequest
0 голосов
/ 10 января 2019

Я ищу способ использования плагина Ingest Attachment Processor из Java-клиента REST высокого уровня.

Кажется, что вам нужно выполнить два шага, то есть сначала вы определяете конвейер, содержащий процессор вложений (например, ссылаясь на поле data и используя идентификатор конвейера attachment )

PUT _ingest/pipeline/attachment
{
  "description" : "Extract attachment information",
  "processors" : [
    {
      "attachment" : {
        "field" : "data"
      }
    }
 ]
}

затем вы помещаете данные, относящиеся к полю (здесь данные ) и конвейеру (здесь attachment )

PUT my_index/my_type/my_id?pipeline=attachment
{
  "data": "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0="
}

Теперь я хочу выполнить эти два шага из клиента REST Java High-level. Кажется, что я могу выполнить первый шаг (определение конвейера) с помощью Put Pipeline API , но я не смог найти механизмы Java для второй части, то есть записать фактические данные при обращении к трубопровод.

1 Ответ

0 голосов
/ 12 января 2019

В высокоуровневом REST-клиенте Java есть метод индексирования с использованием IndexRequest, при его создании вы можете установить конвейер с помощью метода Java.

Ссылка на JavaDoc для него - https://artifacts.elastic.co/javadoc/org/elasticsearch/elasticsearch/6.5.4/org/elasticsearch/action/index/IndexRequest.html?is-external=true#setPipeline(java.lang.String)

Я ожидаю, что у меня будет такой код:

RestHighLevelClient client = new RestHighLevelClient(
        RestClient.builder(new HttpHost("localhost", 9200, "http")));

final IndexRequest indexRequest = new IndexRequest("index-name", "index-type");
indexRequest.setPipeline("pipeline-name");

Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("data", "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0=");

indexRequest.source(jsonMap);
final IndexResponse indexResponse = client.index(indexRequest);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...