基於lucene的存儲結構
Lucene是一個功能強大的搜尋庫,但是基於Lucene進行開發比較複雜。ElasticSearch是基於lucene開發的搜尋引擎,提供了更簡單易用的API。
索引實際上是lucene中的概念,一個索引由多個索引段構成,大部分的場景是寫一次,讀多次。當滿足某些條件時,多個索引段會合併成一個更大的索引段。索引段的減少有助於搜尋效率的提高(可能是lucene內部原理決定的),但是頻繁的段合併會影響性能。
Elasticsearch中的每次重新載入都會新創建一個段,新創建的段裏面的數據在下一次重新載入之前是不會被搜尋到的。ES的段合併是在後臺進行的。