elasticsearch基本操作 更新

2021-08-21 18:07:33 字數 3101 閱讀 8117

介紹之前首先看一下es的字段型別:

核心資料型別: 

text、byte、short、integer、long、float、double、boolean、date

復合資料型別

array、object

注意:新版本es不支援string型別,支援text

index_ml:索引(相當於關聯式資料庫中的資料庫)

type_ml:型別(相當於關聯式資料庫中的表)

(一)簡單建立索引

post請求

"name":"zs",

"age":22

檢視我們的對映:

(二)增加字段

想在已經建好的索引上增加字段

,"time":}}

}(三)修改某個欄位的值

post請求

}(四)增加一條資料

post請求

}(五)查詢(查詢語句比較冗餘,但是是個查詢語句框架,僅供參考指正)

es查詢基本模板:from=0,size=0.將不會查詢出文件,可以在不需要輸出指定文件的情況下僅僅獲得聚合結果}],

"must_not":[

],"should":}

},"from":0,

"size":100,

"aggs":

}(1)全文搜尋文件name為"ma"的字段

}],"must_not":,"should":}},"from":0,"size":100,"aggs":{}}

(2)所有文件根據性別這個字段聚合

(3)去重 :cardinality   

去重性別:

(4)匹配搜尋

(5) 萬用字元查詢   *代表多個字元,?代表乙個字元

(6)根據範圍查詢

說明:#控制範圍

#range 查詢:範圍查詢

##有from,to,include_lower,include_upper,boost 這些引數

## include_lower: 是否包含範圍的左邊界,預設是true

##include_upper: 是否包含範圍的右邊界,預設是true

}}]}}} 

其中date為文件中的時間字段

(7) 按照或年或月或日進行統計一段時間範圍內文件的數量

date_histogram是按照時間來構建集合(桶)buckts的,當我們需要按照時間進行做一些資料統計的時候,就可以使用它來進行時間維度上構建指標分析  

參考文件:

interval欄位支援多種關鍵字:`year`, `quarter`, `month`, `week`, `day`, `hour`, `minute`, `second`

在2017-01-01到2018-01-13這段時間內,按照月份進行聚合查詢

可以看到2023年一月有6片文件,2023年一月有一篇文件(上圖沒有截全)

(8)term匹配

主要用於精確匹配哪些值,比如數字,日期,布林值或 not_analyzed 的字串(未經分析的文字資料型別)

我們看到,should條件裡的age範圍20-30,但是返回結果依然有age為35的資料,但是score得分僅僅為0.35,相關性不如上圖中第一條資料大,如果想真正把35這個年齡資料的人過濾出去,需要把range條件寫進must裡:

(9)terms匹配

terms 跟 term 有點類似,但 terms 允許指定多個匹配條件。 如果某個字段指定了多個值,那麼文件需要一起去做匹配

(10)exists 和 missing

exists 和 missing 過濾可以用於查詢文件中是否包含指定欄位或沒有某個字段,類似於sql語句中的is_null條件

}],"must_not":,"should":}},"aggs":{}}

exists:過濾文件中欄位。文件中沒有該欄位,或字段值為null,或多值字段為不能被返回,多值字段值(欄位所對應的是個陣列等)不是全為null可以返回

missing為exits的逆。

(11)高亮

},"highlight":}}}

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...