簡體   English   中英

ElasticSearch中映射和類型之間的混淆

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM