2014-01-29 225 views
1

對本指標的映射現在看起來像更改elasticsearch映射

"properties" : { 
    "doc" : { 
    "properties" : { 
     "age" : { "type" : "long"}, 
     "name" : { "type" : "string" 
    } 
    } 
}, 

在elasticsearch

{ 
    "name": "Mark", 
    "age": 28 
} 

具有自動映射索引以下文件的最簡單的情況,但說那我想允許這個文件應該索引的情況下

{ 
    "name": "Bill", 
    "age": "seven" 
} 

如果我試試這個e映射不會更新,並且由於與age屬性的類型存在衝突,因此elasticsearch會引發錯誤。 有沒有辦法做到這一點,這樣兩個文檔可以自動索引,從而可以查詢?

回答

1

您可以添加新字段並更新映射。但是你不能更新映射。要做到這一點,你需要刪除索引,並創建一個新的映射和索引數據。

欲瞭解更多信息請參考以下鏈接reference

2

映射的每種類型的定義,所以你可以做什麼是對你的指數兩類:

  1. 數字
  2. 字母

並根據年齡字段中的值拆分文檔。如果您運行查詢,則可以查詢這兩種類型。

+0

@ MeiSign-我該如何去告訴elasticsearch「考慮一切,但日期爲字符串」? – erbdex

+0

我從來沒有這樣做,但我猜如果你創建索引,你可以設置數字檢測爲false,例如:| http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root-對象type.html#_numeric_detection – MeiSign

1

您無法更改現有的映射。您只能在其中添加新的字段。 或者您必須刪除舊映射&爲該特定索引創建新映射。