的文檔聲稱:什麼是ElasticSearch文件的缺點值
10–25% slower than in-memory fielddata
和
It is possible that doc values will become the default format in the near future
而且這種速度上的略微下降,什麼是所有屬性的使用DOC值的缺點?
謝謝!
的文檔聲稱:什麼是ElasticSearch文件的缺點值
10–25% slower than in-memory fielddata
和
It is possible that doc values will become the default format in the near future
而且這種速度上的略微下降,什麼是所有屬性的使用DOC值的缺點?
謝謝!
的趨勢是使用doc_values
只要有可能,因爲它們變得越來越比場數據更好的性能(尤其是因爲ES 1.4)。現在的一個缺點是你不能在分析字符串字段和布爾字段中使用它們。另一個缺點是如果你仍然在使用方面, Kibana 3,因爲兩者都不利用文檔值,但您可以遷移到聚合,升級到Kibana 4,所以這不是一個真正的問題。
看看這個excellent blog post由克里斯·厄爾這也解釋了插件和DOC值VS fielddata出局。
從Elasticsearch The Definitive Guide [1.x]
DOC值現在比內存慢了約10-25%fielddata, 並配有兩個主要的優點:
他們生活的磁盤,而不是在堆內存上。這使您可以處理大量的fielddata,這些fielddata通常會太大而不適合內存使用。事實上,你的堆空間($ ES_HEAP_SIZE)現在可以 設定在較小的尺寸,從而提高垃圾收集 ,因此,節點穩定的速度。 Doc值在索引時建立,而不是在搜索時建立。雖然內存中的字段數據必須在搜索時立即構建,但不會反轉倒排索引,但doc值是預先構建的,並且初始化速度要快得多。
權衡是一個較大的索引的大小和速度稍慢fielddata 訪問。文檔值非常高效,因此對於許多查詢,您可能不會注意到速度稍微慢一點的 。將其與 更快的垃圾收集和改進的初始化時間相結合,你可能會注意到淨收益。
您掌握越多的文件系統緩存空間,更好的 DOC值將執行。如果保存文檔值的文件是駐留在文件系統緩存中的 ,則訪問這些文件幾乎是 等同於從RAM讀取。文件系統緩存由內核管理,而不是由JVM管理。
可以爲數值,日期,布爾值,二進制和 地理點字段以及not_analyzed字符串字段啓用文檔值。他們不會 當前與分析的字符串字段一起工作。 DOC值在字段映射,這意味着你可以用DOC值相結合的內存 fielddata每 場啓用:
PUT /music/_mapping/song
{
"properties" : {
"tag": {
"type": "string",
"index" : "not_analyzed",
"doc_values": true
}
}
}
我們正在使用與布爾doc_values,但你不能用分析使用它們領域。他們正在談論它,但不知道正確的數據結構應該是什麼。請參閱Add Support for doc values for analyzed fields。
對於任何類型的財產都是如此嗎?即使我不使用聚合? 在文檔中,他們聲稱doc值可以提高,特別是在聚合或排序的情況下。儘管doc值在硬盤上佔用更多空間。 – Michael
彈性搜索需要非反轉數據(當前用於排序和聚合)時,會使用「doc值」。 –
我們不能在*布爾*字段上使用它仍然是真的嗎?因爲[*布爾*文檔](https://www.elastic.co/guide/en/elasticsearch/reference/2.3/boolean.html)提到選項* doc_values *以啓用排序。它還提到,默認情況下啓用,但我真的不能排序布爾字段。 – Kamafeather