【问题标题】:How to create a dynamic Template in elasticsearch using spring data.如何使用 spring 数据在 elasticsearch 中创建动态模板。
【发布时间】:2016-06-30 11:57:22
【问题描述】:

例如,我想创建基于时间的索引。在弹性搜索中,我们可以通过创建模式来实现这一点。

    curl -XPUT 'localhost:9200/_template/indextemplate' -d '{
      "template": "dynamicIndex-*",
      "order": 0,
      "settings": {
        "index": {
          "number_of_shards": 2,
          "number_of_replicas": 2
        }
      }
    }

在上面的示例中,设置和映射将应用于“dynamicIndex-”。所以现在我可以创建每周索引,如 dynamicIndex-1、dyanmicIndex-2。 如何使用弹簧数据实现这一点(如何在使用弹簧数据时创建/设置索引模板)。

【问题讨论】:

标签: java spring spring-data spring-data-elasticsearch


【解决方案1】:

如果您对使用spring-data-elasticsearch没有严格要求,那么您可以简单地使用原生elasticsearch java客户端启动一个节点并将其用作独立的elasticsearch节点。

您可以使用它来进行这些动态模板配置。

https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.0/node-client.html#node-client

【讨论】:

    【解决方案2】:

    您可以使用PutIndexTemplateRequest 在elasticsearch 中使用java 客户端创建模板。这将创建一个通用模板,该模板将应用于模板源文件中指定的所有索引。

    `

      source = readFile(templatePath, StandardCharsets.UTF_8);
      PutIndexTemplateRequest request = new PutIndexTemplateRequest("template-name");
      request.source(source.getBytes());
      PutIndexTemplateResponse response = client.admin().indices().execute(PutIndexTemplateAction.INSTANCE, request)
          .get();
    
      if (!response.isAcknowledged()) {
        LOGGER.error("Error While Updating Template");
      } else {
        LOGGER.debug("Template Updated Successfully on the elasticsearch");
      }
    

    `

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 2017-04-12
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      相关资源
      最近更新 更多