解决此问题的另一种方法是使用索引模板。索引模板的想法是让ES在需要时自动创建丢失的索引,即在索引其索引名与某种模式匹配的文档并为其预定义映射(+最终别名)时为该新索引建立索引。
例如,您可以创建如下的索引模板:
curl -XPUT localhost:9200/_template/template_1 -d '{
"template" : "your_dynamic_index_name_pattern",
"settings" : {
"number_of_shards" : 1
},
"mappings" : {
"places" : {
// mapping deFinition of your places type
}
}
}'
完成此操作后,只要您为client.create()
索引名称与模式匹配的新文档建立索引(例如,使用上面的示例),ES就会在创建文档索引之前自动创建索引并放置映射。