2015-03-02 25 views

回答

2

更新:回覆:fields

注意,這是1.x的文檔,如果你剛到這裏從未來。

爲了向後兼容,如果字段參數指定在沒有存儲(存儲映射設置爲false)字段,它會加載_source並從中提取它。該功能已被source filtering參數取代。

- https://www.elastic.co/guide/en/elasticsearch/reference/1.7/search-request-fields.html#search-request-fields


AFAICT:

_source告訴elasticsearch是否包括在響應匹配的文檔的。 「源」是插入文檔時的數據。

fields告訴elasticsearch包括,但僅包括定義的字段

性能:除非您的Elasticsearch服務器的帶寬較低,否則可能忽略不計。

+0

回到什麼是_source_include之間的區別和字段參數?他們兩人似乎都做了類似的事情。 – vaishaks 2015-03-02 14:04:22

+1

嗯,再看一下:「這個功能已經被源代碼過濾參數取代。」 - http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.html#get-fields – joar 2015-03-02 15:21:00

0

我有同樣的疑問,here我找到了什麼可以解答。

領域限制,其內容是解析並返回

_source_filtering限制它們返回

看到的另一種方式是認爲領域是字段的字段用於優化數據傳輸和CPU使用率,而_source_filtering只優化數據傳輸

源過濾使我們能夠控制的爲每個命中返回原來的JSON文件的部分[...]這是值得記住,這不僅節省了我們參與搜索的節點之間的帶寬成本以及客戶端,而不是CPU或磁盤,就像使用字段時一樣。

另外:

一個關於這不是俗稱領域的特點是選擇的元數據字段以及能力。特別值得注意的是它能夠選擇_ttl字段,它實際上會返回毫秒數,直到文檔過期,而不是文檔的原始壽命。確實是一個非常方便的功能。

0

fields參數僅適用於stored字段。從2.3文檔:

除了索引字段的值,您還可以選擇存儲 原始字段值供以後檢索。具有Lucene 後臺的用戶使用存儲的字段來選擇他們希望 能夠在其搜索結果中返回的字段。事實上,_source字段 是一個存儲字段。在Elasticsearch中,設置要存儲的個別文檔 通常是錯誤的優化。整個 文檔已經存儲爲_source字段。使用_source 參數提取所需的字段幾乎總是 更好。

source filetring對於如何限制領域從_source

相關問題