Elasticsearch索引。

孤芳不自賞發表於2017-08-30

Elasticsearch和傳統關係型資料庫比較:

Relational DB → Databases → Tables → Rows            → Columns

Elasticsearch → Indices        → Types   → Documents → Fields


Elasticsearch叢集可以包含多個索引(indices)(資料庫),每一個索引可以包含多個型別(types)(表),每一個型別包含多個文件(documents)(行),然後每個文件包含多個欄位(Fields)(列)。


索引含義的區分:

你可能已經注意到索引(index)這個詞在Elasticsearch中有著不同的含義,所以有必要在此做一下區分:

  • 索引(名詞)

          如上文所述,一個索引(index)就像是傳統關聯式資料庫中的資料庫,它是相關文件儲存的地方,index的複數是indices或indexes。

  • 索引(動詞)

         索引一個文件表示把一個文件儲存到索引(名詞)裡,以便它可以被檢索或者查詢。這很像SQL中的INSERT關鍵字,差別是,如果文件已經存在,新的文件將覆蓋舊的文件。

  • 倒排索引

         傳統資料庫為特定列增加一個索引,例如B-Tree索引來加速檢索。Elasticsearch和Lucene使用一種叫做倒排索引(inverted index)的資料結構來達到相同目的。


     預設情況下,文件中的所有欄位都會被索引(擁有一個倒排索引),只有這樣他們才是可被搜尋的。

相關文章