近几篇ElasticSearch系列:
1、阿里云服务器Linux系统安装配置ElasticSearch搜索引擎
2、Linux系统中ElasticSearch搜索引擎安装配置Head插件
3、ElasticSearch搜索引擎安装配置中文分词器IK插件
4、ElasticSearch搜索引擎安装配置拼音插件pinyin
5、ElasticSearch搜索引擎在JavaWeb项目中的应用
一、pinyin插件安装
1、首先前往GitHub下载安装包(注意版本与ElasticSearch对应,若无对应版本,解压后修改pom.xml文件中的elasticsearch.version,建议查看修改一下版本号),上传至/home/目录,并解压至当前目录,如下图所示:
1 vim /home/elasticsearch-analysis-pinyin-6.3.2/pom.xml
2、然后切换至解压目录进行编译(若无安装Maven工具,首先安装Maven才能编译,具体参考Linux安装Maven):
1 [root@izwz9eu3mkqq1njlkrfhc8z elasticsearch-analysis-pinyin-6.3.2]# mvn clean install -Dmaven.test.skip
编译之后,会在当前目录下的target/releases找到对应的zip包,如下图所示:
3、然后在/usr/java/elasticsearch/elasticsearch-6.3.2/plugins/目录下创建analysis-pinyin,再将上述中的zip包解压至该目录,如下图所示:
1 [root@izwz9eu3mkqq1njlkrfhc8z elasticsearch-analysis-pinyin-6.3.2]# unzip /home/elasticsearch-analysis-pinyin-6.3.2/target/releases/elasticsearch-analysis-pinyin-6.3.2.zip -d /usr/java/elasticsearch/elasticsearch-6.3.2/plugins/analysis-pinyin/
4、切换至非root用户,重新启动ES即可,并且可在Head插件中查看插件信息,如下图所示:
二、pinyin插件配置
1、创建空索引,再关闭才能设置分词器,步骤如下图所示:
a、通过head插件新建索引,名称为medcl:
b、配置之前首先需要关闭刚刚创建的索引:
c、复合查询中,输入如下内容,选择PUT方法提交请求。返回结果为右侧的内容:
1 { 2 "index": { 3 "analysis": { 4 "analyzer": { 5 "pinyin_analyzer": { 6 "tokenizer": "my_pinyin" 7 } 8 }, 9 "tokenizer": { 10 "my_pinyin": { 11 "lowercase": "true", 12 "keep_original": "true", 13 "remove_duplicated_term": "true", 14 "keep_separate_first_letter": "false", 15 "type": "pinyin", 16 "limit_first_letter_length": "16", 17 "keep_full_pinyin": "true" 18 } 19 } 20 } 21 } 22 }
2、创建Mapping,即索引结构以及字段配置,如下图所示:
1 { 2 "folks": { 3 "properties": { 4 "name": { 5 "type": "keyword", 6 "fields": { 7 "pinyin": { 8 "analyzer": "pinyin_analyzer", 9 "term_vector": "with_offsets", 10 "boost": 10, 11 "type": "text" 12 } 13 } 14 } 15 } 16 } 17 }
3、最后如同关闭索引操作一样,开启索引即可,并可在索引信息中查看,如下图所示:
三、pinyin插件测试
这里推荐使用Postman软件,是一个很好的http模拟器,在测试REST服务时是很好用的工具,可以发送get、post、put等各种请求,如下图所示向刚才创建的索引中插入文档:
这时返回head可看到,已经插入成功:
最后,在项目中输入拼音测试一下。当仅仅输入cesh,就已经能联想到结果,后面数字是匹配度,后续会介绍,如下图所示:
至此是关于介绍在Linux系统中ElasticSearch搜索引擎安装配置拼音插件pinyin,后续会介绍在JavaWeb项目中怎么应用。
如有疏漏错误之处,还请不吝赐教!