有没有办法用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()
缺少的吗?
答案 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()