es 加固 search-guard + IK分詞 + 在線搜索 梳理和總結

測試環境部署:

es版本2.4.6

安裝:https://blog.csdn.net/qq_27717921/article/details/90140012

遇到的坑:1、不能root運行;2、當es data 所在的磁盤存儲空間使用超過80%,es自動轉爲只讀模式。

解決辦法:1、把es涉及到的路徑最好設置成 chmod -R  777  /es相關文件;2、這種情況最好在es安裝之初就指定一個空間大剩餘空間多的磁盤存儲data

search-guard加固

配置:https://blog.51cto.com/chenhao6/2113873

遇到的坑:

4.驗證節點
4.1初始化安全
cd /usr/share/elasticsearch/
./plugins/search-guard-2/tools/sgadmin.sh  \
-cd plugins/search-guard-2/sgconfig/ \
-ks config/node-1-keystore.jks \
-ts config/truststore.jks  \
-kspass elastic \
-tspass elastic \
-cn elasticsearch \ ####這個地方要換成自己es的名字
-h 192.168.2.142 \  ####換成自己es所在ip地址
-nhnv
2.5複製到config裏面
#cd /usr/share/elasticsearch/search-guard-ssl-2.4.6/example-pki-scripts
#cp truststore.jks node-1-keystore.jks /usr/share/elasticsearch/config/
#cp truststore.jks node-1-keystore.jks  /etc/elasticsearch/
#cp truststore.jks admin-keystore.jks /usr/share/elasticsearch/plugins/search-guard-2/sgconfig/

IK分詞

安裝:https://www.jianshu.com/p/7994bb526dae

/usr/share/elasticsearch/plugins/ik/config/IKAnalyzer.cfg.xml #用來定義自定義詞庫
/usr/share/elasticsearch/plugins/ik/config/main.dic #ik原生內置的中文詞庫
quantifier.dic #單位名稱
suffix.dic #單位後綴名
surname.dic #姓氏
stopword.dic  #英文停用詞,分詞的時候不會建立到倒排索引中

自定義詞庫:
/usr/share/elasticsearch/plugins/ik/config/custom/mydict.dic. #添加自己的詞語然後重啓es生效
IKAnalyzer.cfg.xml:<!--用戶可以在這裏配置自己的擴展字典 -->
<entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic</entry>
自定義停用詞庫:
比如:了,的,啥,咋,咳 ,等
IKAnalyzer.cfg.xml:<!--用戶可以在這裏配置自己的擴展停止詞字典-->
<entry key="ext_stopwords">custom/ext_stopword.dic</entry>#添加自己的詞語然後重啓es生效

這種添加方案費時費力還需要重啓es,有沒有更好的方案呢??

如何es不停機的情況下,直接在外部某個地方添加新的詞語,熱更新到es中??

兩種方案:
1、修改ik分詞器源碼,然後支持手動從mysql中每隔一段時間,自動更新的新的詞語。 ##業界使用較多。修改方法https://www.bilibili.com/video/av75423048?p=32
2、基於ik分詞器原生的熱更新方案,部署以個web服務器提供一個http接口通過modified和tag兩個http相應頭來提供熱更新。  ##官方社區說不穩定

在線搜索

遇到的坑:在建立index之前要設計好mapping和setting,需要IK分析的fields,設置成:

"analyzer":"ik_max_word",
"search_analyzer":"ik_max_word"

這樣可以保證建索引時和搜索時都是同樣的設置,結果可控。

建索引時的字段一定要和搜索時字段保持高度一致,如果不一致,首先查看線上環境用了哪些字段和setting:

curl -u users:password -XGET IP地址/index/_mapping

然後逆向分析重建index 。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章