首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中使用Elasticsearch吞吐附件处理器插件

如何在Java中使用Elasticsearch吞吐附件处理器插件
EN

Stack Overflow用户
提问于 2019-01-10 19:50:57
回答 1查看 1.2K关注 0票数 2

我正在寻找一种从Java客户端使用吞食附件处理器插件的方法。

您似乎需要执行两个步骤,即首先定义包含附件处理器的管道(例如,引用字段数据和使用管道id附件)。

代码语言:javascript
复制
PUT _ingest/pipeline/attachment
{
  "description" : "Extract attachment information",
  "processors" : [
    {
      "attachment" : {
        "field" : "data"
      }
    }
 ]
}

然后将数据引用到字段(这里是数据)和管道(这里是附件)。

代码语言:javascript
复制
PUT my_index/my_type/my_id?pipeline=attachment
{
  "data": "e1xydGYxXGFuc2kNCkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0DQpccGFyIH0="
}

现在,我想从Java高级REST客户机执行这两个步骤。我似乎可以使用管道API执行第一步(管道的定义),但是我找不到第二部分的Java机制,即在引用管道的同时写入实际数据。

EN

回答 1

Stack Overflow用户

发布于 2019-01-12 14:06:57

在Java高级REST客户机中,有一种使用IndexRequest进行索引的方法,在创建过程中,可以通过Java设置管道。

it的JavaDoc参考- https://artifacts.elastic.co/javadoc/org/elasticsearch/elasticsearch/7.6.2/org/elasticsearch/action/index/IndexRequest.html?is-external=true#setPipeline(java.lang.String)

我希望有这样的代码:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54135989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档