参考:http://blog.csdn.net/xiedongdong1/article/details/52848645
elasticsearch文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/intro.html
elasticsearch 自带的中分分词器将会使中文分成一个一个的单词,需要安装ik分词等,ik分词分为 ik_smart(最细粒度分词),ik_max_word(最粗粒度分词)两种模式。
1:首先安装elasticsearch:官网下载elasticsearch zip版本 https://www.elastic.co/downloads/elasticsearch
2:解压下载的zip包,启动elasticsearch,有两种方式:
2.1:进入解压文件的bin目录,双击执行elasticsearch.bat
进入 http://localhost:9200 ,出现以下页面,说明安装成功。
按Ctrl+c停止
2.2: 安装成windows服务,进入bin命令行界面下,执行可执行程序elasticsearch-service-x64.exe,即成为系统服务
3:安装head插件,在网页上管理、监视集群的状态,elasticsearch-head是一个界面化的集群操作和管理工具
3.1 5.0版本以前 通过elasticsearch 的plugin插件进行安装,进入bin目录下进行安装:elasticsearch/bin/plugin -install mobz/elasticsearch-head
3.2 5.0以后不支持命令行安装,需要安装node.js等支持。安装方法 http://blog.csdn.net/qq3401247010/article/details/78742524
4: 安装ik分词插件
首先在git上下载已经编译好的代码,一定要选择和自己的es版本对应,否则无法启动服务,git下载地址如下:
https://github.com/medcl/elasticsearch-analysis-ik/releases
然后把文件解压的内容放在es的plugins的analysis-ik目录下,如果没有此目录,则新建。
最后在es的conf中elasticsearch.yml文件末尾中加入 index.analysis.analyzer.ik.type: "ik"
测试分词插件是否可以分词:
在浏览器输入:
http://localhost:9200/_analyze?analyzer=ik&pretty=true&text=中华人民共和国国歌
结果:
{ "tokens" : [ { "token" : "中华人民共和国", "start_offset" : 0, "end_offset" : 7, "type" : "CN_WORD", "position" : 0 },
{ "token" : "中华人民", "start_offset" : 0, "end_offset" : 4, "type" : "CN_WORD", "position" : 1 },
{ "token" : "中华", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 2 },
{ "token" : "华人", "start_offset" : 1, "end_offset" : 3, "type" : "CN_WORD", "position" : 3 },
{ "token" : "人民共和国", "start_offset" : 2, "end_offset" : 7, "type" : "CN_WORD", "position" : 4 },
{ "token" : "人民", "start_offset" : 2, "end_offset" : 4, "type" : "CN_WORD", "position" : 5 },
{ "token" : "共和国", "start_offset" : 4, "end_offset" : 7, "type" : "CN_WORD", "position" : 6 },
{ "token" : "共和", "start_offset" : 4, "end_offset" : 6, "type" : "CN_WORD", "position" : 7 }, {
"token" : "国", "start_offset" : 6, "end_offset" : 7, "type" : "CN_CHAR", "position" : 8 },
{ "token" : "国歌", "start_offset" : 7, "end_offset" : 9, "type" : "CN_WORD", "position" : 9 } ]}
如果想要粗粒度的分词:则把analyzer的属性换成ik_smart即可
http://localhost:9200/_analyze?analyzer=ik_smart&pretty=true&text=中华人民共和国国歌
结果:
{ "tokens" : [ { "token" : "中华人民共和国", "start_offset" : 0, "end_offset" : 7, "type" : "CN_WORD", "position" : 0 },
{ "token" : "国歌", "start_offset" : 7, "end_offset" : 9, "type" : "CN_WORD", "position" : 1 } ]}
原文地址:https://www.cnblogs.com/liyafei/p/8527130.html