Elasticsearch-groovy索引模板

时间:2015-07-31 22:27:46

标签: groovy elasticsearch

有没有办法用elasticsearch-groovy或elasticsearch-java的API定义索引模板?我想在其上应用“设置”(自定义分析器)和“映射”(在字段上应用分析器)。 documentation仅引用索引templatex,但未显示vaild示例,如何在groovy闭包中应用它们。文档中显示的示例在数据(源)字段中添加了“设置”。

编辑:@Val感谢您的回复,但如果我使用source字段,如下所示:

    def templateR = client.admin.indices.putTemplate {
        name "template_name"
        source {
            template "template_*"         
        }
    }.actionGet()

...这导致编译器错误:MissingMethodException No signature of method: ...source()。以下代码:

    def templateR = client.admin.indices.putTemplate {
        name "lemato_template"
        template "lemato_*"
        settings {
            number_of_shards= 1      
        }            
    }.actionGet() 

给了我编译器错误No such property: number_of_shards。我不确定我是否正确使用closure delegation。是.asMap()缺少的吗?

1 个答案:

答案 0 :(得分:2)

elasticsearch-groovy肯定支持创建/删除索引模板。 source闭包可能包含您可以为index templates定义的任何内容。这样的事情应该有效。

PutIndexTemplateResponse response = client.admin.indices.putTemplate {
  name "my_template"
  source {
    template "index_*"
    settings {
      index {
        number_of_shards = 5
        number_of_replicas = 1
      }
    }
    mappings {
       // your mapping definitions
    }
    aliases {
       // your aliases
    }
  }
}.actionGet()