Elasticsearch 的索引建立

2021-09-29 20:48:26 字數 1340 閱讀 4130

elasticsearch是文件型資料庫,索引(index)定義了文件的邏輯儲存和字段型別,每個索引可以包含多個文件型別,文件型別是文件的集合,文件以索引定義的邏輯儲存模型,比如,指定分片和副本的數量,配置重新整理頻率,分配分析器等,儲存在索引中的海量文件分布式儲存在elasticsearch集群中。

elasticsearch是基於lucene框架的全文搜尋引擎,將所有文件的資訊寫入到倒排索引(inverted index)的資料結構中,倒排索引建立的是索引中詞和文件之間的對映關係,在倒排索引中,資料是面向詞(term)而不是面向文件的。

elasticsearch的物件模型,跟關係型資料庫模型相比:

1> 索引(index):相當於資料庫,用於定義文件型別的儲存;在同乙個索引中,同乙個字段只能定義乙個資料型別;

2> 文件型別(type):相當於關係表,用於描述文件中的各個欄位的定義;不同的文件型別,能夠儲存不同的字段,服務於不同的查詢請求;

3> 文件(document):相當於關係表的資料行,儲存資料的載體,包含乙個或多個存有資料的字段;

4> 字段(field):文件的乙個key/value對;

5> 詞(term):表示文字中的乙個單詞;

6> 標記(token):表示在字段**現的詞,由該詞的文字、偏移量(開始和結束)以及型別組成;

4. 索引是由段(segment)組成的,段儲存在硬碟(disk)檔案中,段不是實時更新的,這意味著,段在寫入磁碟後,就不再被更新。elasticsearch引擎把被刪除的文件的資訊儲存在乙個單獨的檔案中,在搜尋資料時,elasticsearch引擎首先從段中查詢,再從查詢結果中過濾被刪除的文件,這意味著,段中儲存著「被刪除」的文件,這使得段中含有」正常文件「的密度降低。多個段可以通過段合併(segment merge)操作把「已刪除」的文件將從段中物理刪除,把未刪除的文件合併到乙個新段中,新段中沒有」已刪除文件「,因此,段合併操作能夠提高索引的查詢速度,但段合併是io密集型的操作,需要消耗大量的硬碟io。

在建立索引之前,首先了解restful api的呼叫風格,在管理和使用elasticsearch服務時,常用的http動詞有下面五個:

get 請求:獲取伺服器中的物件

相當於sql的select命令

get /blogs:列出所有部落格

post 請求:在伺服器上更新物件

相當於sql的update命令

post /blogs/id:更新指定的部落格

put 請求:在伺服器上建立物件

相當於sql的create命令

put /blogs/id:新建乙個部落格

delete 請求:刪除伺服器中的物件

相當於sql的delete命令

delete /blogs/id:刪除指定的部落格

ElasticSearch權威指南學習(索引管理)

當我們需要確保索引被建立在適當數量的分片上,在索引資料之前設定好分析器和型別對映。手動建立索引,在請求中加入所有設定和型別對映,如下所示 put my index 你可以通過在 config elasticsearch.yml 中新增下面的配置來防止自動建立索引。action.auto create...

elasticsearch 建立靜態對映索引

所謂靜態對映就是像mysql一樣在建表的時候對各個欄位的屬性進行設定 put books process settings 建立索引為 books 型別為 it以上索引的it型別 進行資料插入時,只要是字段不是title,process都會報錯 properties number user id c...

Elasticsearch 使用集群 建立索引

elasticsearch 修改資料 elasticsearch 搜尋資料 現在讓我們建立乙個名為 customer 的索引,然後再次列出所有索引 api格式 put customer?pretty get cat indices?v第乙個命令使用put建立名為 customer 的索引。末尾追加p...