Es修改分詞相關操作

2021-09-25 14:06:28 字數 1880 閱讀 5131

最近修改了elasticsearch分詞。並reindex索引。

使用的分詞外掛程式是hanlp

修改完分詞之後將對應的bin檔案上傳到服務,並替換對應的bin檔案

伺服器es對應的路徑elasticsearch/plugins/analysis-hanlp/data/dictionary/

替換完成之後(我使用的es是3個節點,都要替換),就要重啟節點了。

重啟節點的安全流程:

1: 關閉集群分片的自動分配

put _cluster/settings

}}}.

2: 確認關閉後,重啟節點

3: 節點重啟成功後,開啟集群分片的自動分配

put _cluster/settings

}}}.

注意:在重啟es節點的時候一定要使用安全的流程,博主就是沒有關閉es分片自動分配就重啟節點,正好趕上es寫入資料,造成了生產索引長時間的分片unsigned,索引status一直是黃色的。。就像這樣

記錄一下檢視索引狀態的相關命令吧

檢視分片狀態get ip:9200/_cat/shards?v  可以看到紅框對應的分片就是沒有被分配的

檢視集群健康get ip:9200_cat/health?v

注意:正常情況下active_shards_percent 這個字段應該是100.0%

檢視unsigned的日誌(這個有助於我們解決問題,沒有分片unsigned就不需要使用)get ip:9200/_cluster/allocation/explain

索引狀態為yellow持續了兩天,lz受不了了因為還要reindex,切換別名。

博主發現沒有被分配的分片都在節點node-2上面,於是重啟了node-2的節點,結果不是很理想。

最後博主使用命令 post _cluster/reroute?retry_failed=true 

使用這個命令後可以看到分片一點點的在被分配

reindex之前要先建立索引,可以先建立乙個副本數量為0的索引,這樣可以提高reindex的效率,在reindex之後可以再把副本數量改為需要的數量。

put index/_settings

在reindex好了之後,可以根據需要進行merge啦,這樣操作可以提高查詢索引的速度。

get index/_segments可以看到segments的數量

merge之前是

使用此命令可以將對應索引執行merge  ip:9200/index/_forcemerge?max_num_segments=1

請求成功後可以發現,資料占用空間會一點點變大

可以使用kibana觀察對應索引 total 和 primaries 空間大小

在merge之後,他們的大小會恢復到之前,同時檢視_segments 可以看到num_search_segments : 1就是成功了。

然後切換別名就好了。 

ES資料庫相關操作

es資料庫的應用 最近的專案中,es集群分三個節點安裝,乙個主節點,兩個副節點。目前我們的使用場景主要是儲存流量日誌資料,針對不同的日誌型別,索引按天建立,例如skyeye tcpflow 20191001 skyeye udpflow 20191002。es分片的作用,為了讓所有資料均衡的儲存在集...

es拼音分詞 大帥哥 ES查詢優化之中文分詞優化

中文的搜尋和英文的搜尋最大不同之處在於分詞,英文分詞可以通過空格,而中文的分詞則複雜很多,分詞會直接影響使用者的搜尋使用體驗,在一些大公司甚至會使用機器學習的方式進行分詞。在這篇文章中筆者主要講解es中文分詞相關的優化。網路上經常會出現一些新詞,比如 藍瘦香菇 藍瘦香菇預設情況下會被分詞,分詞結果如...

各種基於es的分詞外掛程式

field.store.yes 儲存字段值 未分詞前的字段值 field.store.no 不儲存,儲存與索引沒有關係 field.store.compress 壓縮儲存,用於長文字或二進位制,但效能受損 jieba分詞 結巴分詞作為es的外掛程式 按照這個 說的,即可安裝。ansj分詞外掛程式 j...