elasticsearch _source


默認地,Elasticsearch 在 _source 字段存儲代表文檔體的JSON字符串。和所有被存儲的字段一樣, _source 字段在被寫入磁盤之前先會被壓縮。
這個字段的存儲幾乎總是我們想要的,因為它意味着下面的這些:
搜索結果包括了整個可用的文檔——不需要額外的從另一個的數據倉庫來取文檔。
如果沒有 _source 字段,部分 update 請求不會生效。
當你的映射改變時,你需要重新索引你的數據,有了_source字段你可以直接從Elasticsearch這樣做,而不必從另一個(通常是速度更慢的)數據倉庫取回你的所有文檔。
當你不需要看到整個文檔時,單個字段可以從 _source 字段提取和通過 get 或者 search 請求返回。
調試查詢語句更加簡單,因為你可以直接看到每個文檔包括什么,而不是從一列id猜測它們的內容。
然而,存儲 _source 字段的確要使用磁盤空間。如果上面的原因對你來說沒有一個是重要的,你可以用下面的映射禁用 _source 字段:

PUT /my_index
{
    "mappings": {
        "my_type": {
            "_source": {
                "enabled":  false
            }
        }
    }
}

在一個搜索請求里,你可以通過在請求體中指定 _source 參數,來達到只獲取特定的字段的效果:

GET /_search
{
    "query":   { "match_all": {}},
    "_source": [ "title", "created" ]
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM