【问题标题】:Fill ElasticSearch index with documents from JSON using Spring使用 Spring 使用来自 JSON 的文档填充 ElasticSearch 索引
【发布时间】:2018-10-18 00:26:35
【问题描述】:

如何使用 spring / spring-data-elasticsearch 用 JSON 文件中的多个文档填充 ES 中的现有索引?

编辑

我知道 ES BulkAPI 和 Spring 的 elasticsearchTemplate.bulkIndex(indexQueries); 方法但是那样我必须自己处理 JSON 解析 (I want to avoid this way)。但是如果我们已经知道索引和映射,我想知道是否有更简单的方法只需要传递 foo.json 文件?

【问题讨论】:

  • Fill 表示您要索引 JSON 文件中的数据。对吧?
  • 我有一个大型 JSON 文件,我想将它放入 ES 中,该文件具有 JSON 数据映射的对应索引。
  • 我知道 BulkAPI 是否符合您的想法。但是,我追求的是使用 spring 的编程解决方案。
  • 您可以使用 elasticsearchTemplate 类(配置为 bean),然后使用批量索引文档。

标签: elasticsearch spring-data-elasticsearch


【解决方案1】:

我认为 spring data elasticsearch 中没有这样的功能。但是您可以执行以下操作:-

1.为索引设置适当的映射(带json结构)

2.创建索引并放置映射。

3.使用JSON解析器解析输入的json文件如下:-

     //parse json file
     JSONParser parser = new JSONParser();
     Object object = parser.parse(new FileReader("mydoc\\test.js"));
     JSONObject jsonData = (JSONObject) object;
     // index parsed contents
     IndexQuery indexQuery = new IndexQueryBuilder().withIndexName(indexName).
                        withSource(jsonData.toString()).build();
     elasticsearchTemplate.index(indexQuery);

我不确定这是否是您正在查看的内容,但这仍然可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2021-02-18
    • 1970-01-01
    • 2020-12-05
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多