一尘不染

在node.js中的Elasticsearch中创建一个空索引

elasticsearch

我正在使用官方elasticsearch npm。在我的节点应用程序中,我正在使用该客户端创建索引,如下所示

client.create({
   index: orgID, ---------->This is dynamic
   type: "places",
   body:{}
   }, function(error, response){
         if(error){                                    
         } else {                                                           
         }                                                        
   })

我需要为上述索引放入映射,因此,我必须先创建一个空索引(无数据索引),然后必须执行放置映射,然后将数据放入索引。

因此,我必须创建一个空索引,但是在正式的Elasticsearch客户端中,上述方法(create)是用“ POST”方法编写的,因此它需要一个主体。

为此,我必须如上所述给一个空的身体{}。因此,如何使用官方javascript客户端创建空索引。请分享您的想法。


阅读 475

收藏
2020-06-22

共1个答案

一尘不染

解决此问题的另一种方法是使用索引模板。索引模板的想法是让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就会在创建文档索引之前自动创建索引并放置映射。

2020-06-22