2014-11-14 115 views
2

我試圖創建一個映射,讓我有一個文件看起來像這樣:Elasticsearch映射 - 在同一領域不同的數據類型

{ 
    "created_at" : "2014-11-13T07:51:17+0000", 
    "updated_at" : "2014-11-14T12:31:17+0000", 
    "account_id" : 42, 
    "attributes" : [ 
    { 
     "name" : "firstname", 
     "value" : "Morten", 
     "field_type" : "string" 
    }, 
    { 
     "name" : "lastname", 
     "value" : "Hauberg", 
     "field_type" : "string" 
    }, 
    { 
     "name" : "dob", 
     "value" : "1987-02-17T00:00:00+0000", 
     "field_type" : "datetime" 
    } 
] 

}

而且attributes數組必須是嵌套類型和動態類型,所以我可以將更多對象添加到數組中,並通過值field_type對其進行索引。

這甚至可能嗎?

我一直在尋找dynamic_templates。我可以使用它嗎?

回答

4

否 - 對於同一類型中的相同字段,不能有不同的數據類型。

例如字段index/type/value不能是字符串和日期。


dynamic template可用於設置基於字段名稱

的格式例如數據類型和分析器: 設定在「_dt」結束輸入datetime字段名稱的所有字段。

但是,這不會幫助您的情況下,一旦數據類型設置,你不能改變它。

+1

好的。廢話。我必須重新思考我的想法:)謝謝 – 2014-11-14 15:06:35

+1

就像一個補充,不要試圖找到在同一領域和不同類型的解決方案。這也是行不通的。 – 2014-11-14 18:59:48

+0

我需要從@JettroCoenradie發佈的重點,**不同的類型**;大概是因爲同一個字段在不同的映射類型之間共享[見這裏](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#field-conflicts) – 2016-04-24 18:45:10