测试环境部署:
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 。