🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
>[info] ik分词器 ik分词器安装声明:安装完成后需要重新启动elasticsearch,elasticsearch-head,kibana。 ***** **安装:** ``` # 以root身份在es进入目录plugins下新建一个 ik 目录 cd /usr/local/es/elasticsearch-7.6.1/plugins mkdir ik && cd ik # 上传 并解压 elasticsearch-analysis-ik-7.6.1.zip unzip elasticsearch-analysis-ik-7.6.1.zip # 切换成 es 用户再次启动es,如报错属于包不完整,重新下载即可。 ./bin/elasticsearch -d # 官网下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases ``` ***** >[info] ik分词器介绍 **分词:** * 即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中 或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如: "中国的花"会被分为"中","国","的","花",这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。 * IK提供了两个分词算法:**ik\_smart** 和 **ik\_max\_word**,其中 ik\_smart 为最少切分,ik\_max\_word为最细粒度划分!一会我们测试! **查看加载的插件:** ``` ./bin/elasticsearch-plugin list ``` ![](https://img.kancloud.cn/ce/70/ce70e2cc829c4f63025c0bfee04ba761_455x132.png) ***** >[info] ik\_smart 为最少切分 ``` GET _analyze { "analyzer": "ik_smart", "text": "初心好帅" } ``` ![](https://img.kancloud.cn/ce/14/ce147378ff7c3692e8827e104347dff7_1379x617.png) >[info] ik\_max\_word为最细粒度划分!穷尽词库的各种可能!字典! ``` GET _analyze { "analyzer": "ik_max_word", "text": "好好学习天天向上" } ``` ![](https://img.kancloud.cn/ff/86/ff8604a358598a4c1805ae023038bcaa_1180x625.png) >[info] ik 分词器增加自己的配置 ``` # 可以使用 phpstorm 操作 # 在 /usr/local/es/elasticsearch-7.6.1/plugins/ik/config 下新建 xx.dic(starsky.dic)文件 vim starsky.dic # 写入内容:初心好帅 直接作为一个整词 初心好帅 # 修改 IKAnalyzer.cfg.xml 加上一个配置字典 <entry key="starsky"></entry> # 重启 kibana 和 es-head 和 es # 再次输入 初心好帅 查看分词效果 ``` ***** >[info] keyword 精准查询 新增一个索引: ``` PUT chuxin/_doc/1 { "name":"chuxin老师是PHP讲师", "desc":"chuxin老师讲解的是PHP课程" } ``` ``` GET _analyze { "analyzer": "keyword", "text": "chuxin老师是PHP讲师" } ``` ![](https://img.kancloud.cn/3f/5b/3f5b5b32b2a473f0c27b19a919d40647_1223x492.png) >[info] standard 分词查询 ``` GET _analyze { "analyzer": "standard", "text": "chuxin老师是PHP讲师" } ``` ![](https://img.kancloud.cn/b6/1f/b61ff0c11cd2d1034a399e7931fffaf7_1147x809.png)