[英]Confusion between mappings and types in ElasticSearch
對不起,我是ElasticSearch的新手。
http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping.html
這個文件說你可以“在twitter索引中創建一個叫做tweet的映射”
$ curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d '
{
"tweet" : {
"properties" : {
"message" : {"type" : "string", "store" : "yes"}
}
}
}
'
有人在ES IRC頻道告訴我,/ twitter / tweet twitter = index,tweet = type
但是,如果我執行以下操作會發生什么?
$ curl -XPUT 'http://localhost:9200/twitter/XXX/_mapping' -d '
{
"YYY" : {
"properties" : {
"message" : {"type" : "string", "store" : "yes"}
}
}
}
'
如果我已在網址中提供了類型名稱,為什么還要在內容中提供類型名稱? 如果我在內容中提供類型名稱,為什么我不能只調用一些URL:
$ curl -XPUT 'http://localhost:9200/twitter/_mapping' -d '
在閱讀文檔時,對我而言,它說“在twitter索引中創建一個名為tweet的映射”,這意味着XXX是映射名稱,YYY是類型名稱。
因此,如果存在映射名稱,則索引通常可以存在許多“映射”
那么,最終,XXX和YYY是/應該是一樣的?
這不是我從文檔中理解的,但我認為是: - 一個索引可以有類型 - 類型有一個映射因此我們不像文檔說的那樣創建一個映射,但是我們創建了一個具有映射的類型,或者我們更新類型的映射號?
在一個我不想使用任何類型的索引(索引的所有文檔都是相同類型的數據),但我想為該索引創建一個映射,我應該通過只創建一個類型來處理它映射,並始終使用該類型(例如在CouchDB河中)?
謝謝
在當前版本的elasticsearch搜索(0.19.4)中,忽略“YYY”並將映射分配給“XXX”類型。
實際上,您可以將創建映射視為創建類型。 在內部,類型以映射表示,文檔僅反映此行為。 如果所有記錄都具有相同的類型,則應將索引視為僅包含一種類型的索引。 Type用於“命名空間”不同類型的記錄,因此它是必需的。 id本身不能唯一標識記錄。 要識別elasticsearch中的記錄,您需要具有索引,類型和ID。 這就是為什么type是get操作所需的參數,例如。 對於其他操作,如果未指定type,elasticsearch將假定您要使用所有類型的記錄執行操作。
注意,也可以通過添加新類型的記錄隨時動態創建類型。 所以,只有一個類型的指數是不具備第二類又一個指標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.