1、定義
Lucene中基本的概念包括index、document、field、term。
- 一個index包含一系列的documents;
- 一個document包含一系列的fields;
- 一個field包含一系列的terms;
- 一個term是一系列的bytes;
2、分段
Lucene索引可能由多個分段(segment)組成,每個分段是完全獨立的,可以獨立的執行搜索。有兩種情況產生新的分段:
- refresh操作產生一個分段,爲新增的document創建新的分段;
- 已存在的分段合併成新的分段;
一次對Lucene索引的搜索需要搜索全部分段。
3、文件命名規則
屬於一個段的所有文件都具有相同的名稱和不同的擴展名。當使用複合索引索引文件(默認)時,除.si、write.lock、.del外的其他文件被合併壓縮成單個.cfs文件。
文件名不會被重用,任何文件保存到目錄時,它有唯一的文件名。這是通過簡單的生成方法實現的,例如,第一個分段文件名爲segment_1,接下來是segment_2。
4、文件擴展名
下表總結了Lucene中文件的名稱和擴展名。
看一個ES索引存儲在磁盤的示例
參考:《Elasticsearch源碼解析與優化實戰》張超;