目录:
--1. 安装
--2.测试
--3. 创建mapping
--4. testing
1. 安装
Ik分词器的安置于测试
http://www.360doc.com/content/18/1128/12/33260087_797769881.shtml
方案1:
下载编译好了的: https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.1.0
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v5.6.2
拷贝和解压release下的文件: #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-*.zip 到你的 elasticsearch 插件目录, 如: plugins/ik/ 重启elasticsearch (文件下的所有到/ik/)
方案2:
git clone https://github.com/medcl/elasticsearch-analysis-ik cd elasticsearch-analysis-ik git checkout tags/{version} mvn clean mvn compile mvn package
拷贝和解压release下的文件: #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-*.zip 到你的 elasticsearch 插件目录, 如: plugins/ik 重启elasticsearch
bin/plugin install file:///export/software/elasticsearch-analysis-ik-1.10.4.zip
此时的每个节点都需要配置一份自己的扩展字典吗?不用!
既然是远程词典,那么就要是一个可访问的链接,可以是一个页面,也可以是一个txt的文档,但要保证输出的内容是 utf-8 的格式,hotWords.php 的内容:
$s = <<<'EOF' 蓝瘦 千锋互联 不明觉厉 EOF; header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT', true, 200); header('ETag: "5816f349-19"'); echo $s;
ik 接收两个返回的头部属性 Last-Modified 和 ETag,只要其中一个有变化,就会触发更新,ik 会每分钟获取一次
重启 Elasticsearch
注意:如果设置的链接是一个页面,需要部署服务器,关于部署服务器可以是Apache或Tomcat等。
5、 配置elasticsearch.yml
在%es%/config下
index.analysis.analyzer.ik.type: "ik"
放置到最后
名称命名为。后续用到分词器的时候,使用ik这个名词。
6、 重启es
http://192.168.18.129:9200/_analyze?analyzer=ik_max_word&pretty=true&text=%E2%80%9C%E6%88%91%E6%98%AF%E4%B8%AD%E5%9B%BD%E4%BA%BA%E2%80%9D
参数说明:
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;
ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。
4 创建Mapping,指定 IK分词器 :(只可以创建,不可以修改)
手动创建索:
postman:
{ "settings": { "analysis": { "analyzer": { "ik": { "tokenizer": "ik_max_word" } } } }, "mappings": { "content": { "_all": { "enabled": false }, "properties": { "id": { "type": "keyword" }, "catid": { "type": "keyword" }, "classify": { "type": "integer" }, "title": { "type": "text", "analyzer": "ik_max_word", "store": true }, "author": { "type": "text", "analyzer": "ik_max_word" }, "published": { "type": "date" }, "article": { "type": "text", "analyzer": "ik_max_word" } } } } }
三、验证我们配置的分词器是否有效果
1.查看我们创建的这个索引的索引信息(可以借助elasticsearch-head-master插件
5 :测试:
post: http://localhost:9200/blog/hello/_search post 方式
{ "query":{ "query_string":{ "default_field":"content", "query":"测试ing" } } }