Elasticsearch 基本操作1

2022-08-26 10:39:09 字數 1414 閱讀 6799

elasticsearch版本:6.0

一、文件

乙個文件不僅包含資料,也包含元資料,三個必須的元資料如下

_index:具有共同特性分到一起的文件集合,標示了文件的存放位置;

名字小寫,不以下劃線開頭,不包含逗號。

_type:表示文件的型別,在索引中對資料進行邏輯分割槽;

名字大寫或小寫,不以下劃線或句號開頭,不包含逗號,並且長度限制256個字元。

_id:文件的唯一標識,和_index和_type組合可以唯一確定elasticsearch中的乙個文件;

可以自定義id值,或者由elasticsearch來生成。

二、rest風格

put ///
post:建立,不指定id時,elasticsearch自動生成id,指定id時,如果文件存在,會返回409 conflict;

put:可以建立/更新文件,更新時,舊文件被標記為刪除,增加新文件,elasticsearch後台清理這些標記刪除的文件;

get:搜尋文件;

delete:刪除文件,實際上是在.del檔案中被標記刪除,被刪除的文件仍然可以被查詢匹配到,但是它會在最終結果被返回前從結果集移除,更新操作類似;

部分更新文件

使用put整個更新文件時,需要檢索並修改,再重新索引整個文件,而使用update api可以部分更行文件,需要用post /_update操作,實際上它在內部依然進行了檢索-修改-重建索引的過程,但是這個過程是發生在分片內部的,避免多次請求的網路開銷。

三、搜尋結果

1、hits:包含total欄位表示匹配到的文件總數;

包含_index、_type、_id、_source欄位,標記整個文件資訊;

_score欄位表示文件和查詢的匹配程度,搜尋結果預設按照_score降序排序;

max_score是_score的最大值;

2、took:執行整個搜尋消耗了多少毫秒;

3、_shards:查詢中參與分片的總數,以及分別成功和失敗了多少個;

4、timed_out:查詢是否超時true/false;

elasticsearch預設查詢分頁,預設返回十條資料,可以指定分頁引數

size:返回的結果數量,預設10

from:頁數,預設0

分頁的問題

elasticsearch是分布式的,分頁時會從各個分片產生結果集,最後彙總到協調節點重新排序獲得結果集,對多餘的結果進行拋棄,所以一般查詢不要超過1000個結果。

Elasticsearch 基本操作

mget elasticsearch中檢索多個文件,相對於乙個乙個的檢索,更快的方式是在乙個請求中使用multi get或者 mget api。具體應用如下 mget api引數是乙個 docs 陣列,陣列的每個節點定義乙個文件的 index type id 元資料。如果你只想檢索乙個或幾 個確定的...

elasticsearch基本操作

get search 建立索引 指定分片和副本 put lib 建立索引 put lib2 檢視索引的配置 get lib settings get lib2 settings get all settings 新增文件put方式指定id put lib user 1 新增文件,不指定id用post...

Elasticsearch 基本操作

乙個批量匯入elasticsearch 的demo 機器少的話,分片數最好是你的data節點的機器數倍數,這樣請求負載能夠均攤到每個機器上,如果機器比較多,最好保證分片數不要太多,比如最好別超過20 30個,然後根據你的資料量評估一下,盡量保證每個分片在15到20g吧 資料 vi request.j...