2016-12-07 43 views
0

我正在嘗試向elasticsearch添加一個新字段 - 稱爲「dateAdded」,它將用於對數據進行排序。不知道如何用nodejs去解決它。如何向ElasticSearch添加新字段?

我在找?

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html

我只看到一個例子使用curl,我怎麼能使用的NodeJS這個模塊也做的 - https://github.com/elastic/elasticsearch-js

這是我最初是如何編入索引:

esclient.index({ 
           index: 'projects', 
           type: 'project', 
           id: projectIdStr, 
           body: { 
           "title": proj.title, 
           "company": proj.company, 
           "tags": proj.tagsArray, 
           "defaultPicId": proj.defaultPicId 
           } 
          },function(err,resp,status) { 
           if(err) { console.log(err);} else { 

           //stored 
           } 

          }); 

回答

0

的根據你的elasticsearch集羣的設置,這個答案會有所不同。

如果您有默認設置,那麼您將有動態映射。如果是這種情況,那麼添加一個新字段就像索引帶有該字段的文檔一樣簡單,elasticsearch將會推斷出適當的映射,並將該字段添加到該類型的映射中。

https://www.elastic.co/guide/en/elasticsearch/guide/current/dynamic-mapping.html

如果您有動態映射了,那麼你只需要在類型

PUT indexname/_mapping/mytype 
{ 
    "properties": { 
    "dateAdded": { 
     "type": "date", 
     "format": "dateOptionalTime" 
    } 
    } 
} 

做PUT映射命令在此請看:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html

因此,與記住,如果你設置了動態映射,你只需要使用更新API,它就會爲你制定新的映射。

https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/api-reference.html#api-update

+0

嘿,所以我包括我最初是如何建立索引,所以我認爲這是默認的,而且你知道我將如何與新公共管理模塊調用它呢?它仍然是esclient.index還是有不同的要求? – Lion789

相關問題