日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

es ik分词热更新MySQL,ElasticSearch(25)- 改IK分词器源码来基于mysql热更新词库

發布時間:2025/3/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 es ik分词热更新MySQL,ElasticSearch(25)- 改IK分词器源码来基于mysql热更新词库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼地址

已經修改過的支持定期從數據庫中提取新詞庫,來實現熱更新。代碼:

https://github.com/csy512889371/learndemo/tree/master/elasticsearch-analysis-ik-5.2.0

概述

es不停機,直接我們在外部某個地方添加新的詞語,es中立即熱加載到這些新詞語

熱更新的方案

1、修改ik分詞器源碼,然后手動支持從mysql中每隔一定時間,自動加載新的詞庫

2、基于ik分詞器原生支持的熱更新方案,部署一個web服務器,提供一個http接口,通過modified和tag兩個http響應頭,來提供詞語的熱更新

用第一種方案,第二種,ik git社區官方都不建議采用,覺得不太穩定

下載源碼

https://github.com/medcl/elasticsearch-analysis-ik/tree/v5.2.0

ik分詞器,是個標準的java maven工程,直接導入eclipse就可以看到源碼

修改源碼

Dictionary類,169行:Dictionary單例類的初始化方法,在這里需要創建一個我們自定義的線程,并且啟動它

HotDictReloadThread類:就是死循環,不斷調用Dictionary.getSingleton().reLoadMainDict(),去重新加載詞典

Dictionary類,389行:this.loadMySQLExtDict();

Dictionary類,683行:this.loadMySQLStopwordDict();

mvn package打包代碼

target\releases\elasticsearch-analysis-ik-5.2.0.zip

解壓縮ik壓縮包

將mysql驅動jar,放入ik的目錄下

修改jdbc相關配置

重啟es

觀察日志,日志中就會顯示我們打印的那些東西,比如加載了什么配置,加載了什么詞語,什么停用詞

總結

以上是生活随笔為你收集整理的es ik分词热更新MySQL,ElasticSearch(25)- 改IK分词器源码来基于mysql热更新词库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。