2014-02-11 51 views

回答

5

刷新會導致新文檔在搜索時可見。這是通過編寫一個新的索引段來實現的。一個新的細分也可以通過合併舊的大細分來完成。

由於段是不可變的,所以過濾段和字段高速緩存按段進行管理。您可以使用更溫暖的API來確保緩存在進行搜索之前預先加熱。如果不是,則緩存的部分基本上被「清除」。

在Elasticsearch術語中,flush實際上稱爲Lucene commit。這是相當昂貴的。

如果您有一個寫入沉重的應用程序,您可能想要增加刷新間隔以獲得更好的索引吞吐量。

有這些事情,這兩篇文章的更多細節:

+0

如果我理解正確的:(1)刷新會清除緩存的(部分)。 (2)刷新將清除緩存。 (3)優化也會清除所有的緩存,因爲它合併了所有的段。 我正確嗎? – mjalajel

+0

刷新並優化兩者都會導致沒有溫暖緩存的新分段被添加。因此,更溫暖的API。刷新確保一切都安全地保存到磁盤,它不會導致清除緩存。唯一完全清除緩存的是_clear-API。 Elasticsearch最好儘可能地保持緩存的有效性。 –

+0

這個問題的一個後續:將增加'refresh_interval'提高查詢和聚合性能(大概是他們依賴緩存的b/c)? – speedplane