Elasticsearch 基本操作2

2022-08-26 10:36:17 字數 732 閱讀 9160

elasticsearch版本:6.0

為了避免併發修改的衝突問題,資料庫中,經常用悲觀鎖和樂觀鎖來控制併發問題,而elasticsearch使用樂觀鎖。如果源資料在讀寫過程中被修改,更新將失敗,應用程式可以決定進行重試更新、使用新資料、把情況報告給使用者等操作。

elasticsearch的樂觀鎖實現原理

elasticsearch是分布式的,文件建立、更新、刪除時,新文件必須複製到集群的其他節點;

elasticsearch是非同步併發的,上述複製請求可以被並行的傳送,到達目的地後是無序的;

為了保證elasticsearch併發更新/刪除時資料不會丟失,可以利用_version來實現樂觀鎖,就是說在修改文件時,指定文件的_version,如果該版本不是當前版本,請求將失敗。

使用外部系統

使用其他資料庫作為資料儲存,而elasticsearch做資料檢索,資料庫的變更都要複製到elasticsearch,這個複製過程仍然會有併發問題,es可以直接使用資料庫的版本號,es增加版本字段,用來和資料庫的版本作比較,如果es當前的版本號小於請求的版本號,則使用請求的版本號進行更新等操作。

使用全域性鎖、文件鎖、數鎖來解決併發問題

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