我正在使用官方elasticsearch npm。在我的节点应用程序中,我正在使用该客户端创建索引,如下所示
client.create({ index: orgID, ---------->This is dynamic type: "places", body:{} }, function(error, response){ if(error){ } else { } })
我需要为上述索引放入映射,因此,我必须先创建一个空索引(无数据索引),然后必须执行放置映射,然后将数据放入索引。
因此,我必须创建一个空索引,但是在正式的Elasticsearch客户端中,上述方法(create)是用“ POST”方法编写的,因此它需要一个主体。
POST
为此,我必须如上所述给一个空的身体{}。因此,如何使用官方javascript客户端创建空索引。请分享您的想法。
解决此问题的另一种方法是使用索引模板。索引模板的想法是让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就会在创建文档索引之前自动创建索引并放置映射。
client.create()