首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Java在Elasticsearch中上传Json数据或文件?

如何使用Java在Elasticsearch中上传Json数据或文件?
EN

Stack Overflow用户
提问于 2021-04-26 17:58:55
回答 2查看 345关注 0票数 0

这是我的示例Json数据,来自.json文件,现在我想对elasticsearch执行bulk_insert,这样我就可以在上面执行操作了,..can有人帮我用java代码动态添加这个数据..this只是一个像这样的5-6个对象的一部分,我有超过500个对象

代码语言:javascript
复制
[{

"data1" : "developer",
"data2" : "categorypos",
"data3" : "1001"
},
{

"data1" : "developer",
"data1" : "developerpos",
"data1" : "1002"
},
{

"data1" : "developer",
"data2" : "developpos",
"data3" : "1003"
},
{

"data1" : "support",
"data2" : "datapos",
"data3" : "1004"
}
]
EN

回答 2

Stack Overflow用户

发布于 2021-04-26 18:07:49

elastic search中提供了批量操作,以下是可能对https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html有帮助的文档

票数 0
EN

Stack Overflow用户

发布于 2021-04-26 18:33:33

您需要从应用程序中读取文件,迭代数组,并针对每个文档将其发送到elasticsearch。

要执行最新操作,您应该使用批量处理器类。

代码语言:javascript
复制
    BulkProcessor bulkProcessor = BulkProcessor.builder(
            (request, bulkListener) -> esClient.bulkAsync(request, RequestOptions.DEFAULT, bulkListener),
            new BulkProcessor.Listener() {
                @Override
                public void beforeBulk(long executionId, BulkRequest request) { }
                @Override
                public void afterBulk(long executionId, BulkRequest request, BulkResponse response) { }
                @Override
                public void afterBulk(long executionId, BulkRequest request, Throwable failure) { }
            })
            .setBulkActions(10000)
            .setFlushInterval(TimeValue.timeValueSeconds(5))
            .build();

对于每个json文档,调用:

代码语言:javascript
复制
bulkProcessor.add(new IndexRequest("INDEXNAME").source(json, XContentType.JSON));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67264538

复制
相关文章

相似问题

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