ElasticSearch安装拼音插件(pinyin)
环境介绍
集群环境如下:
- Ubuntu14.04
- ElasticSearch 2.3.1(3节点)
- JDK1.8.0_60
开发环境:
- Windows10
- JDK 1.8.0_66
- Maven 3.3.3
- Intellij IDEA 2016.1
下载编译Pinyin
- clone elasticsearch-analysis-pinyin
通过IntelliJ从git上克隆elasticsearch-analysis-pinyin工程; - 修改ES版本
下载完项目后修改项目根目录下pom.xml文件中的properties/elasticsearch.version节点值为2.3.1,以确保编译后的版本兼容ES2.3.1版本; - 编译
打开IntelliJ Terminal工具,输入以下命令:
mvn clean install -Dmaven.test.skip
可以在项目目录elasticsearch-analysis-pinyin\target\releases看到编译后的结果elasticsearch-analysis-pinyin-1.7.4.zip,以及elasticsearch-analysis-pinyin\target目录下的elasticsearch-analysis-pinyin-1.7.4.jar。
这里我们主要使用zip包。
安装部署
- 安装
在ES服务器每个节点的${ES_HOME}/plugins目录下新建文件夹,名为pinyin;
解压上述zip压缩包,可见三个文件elasticsearch-analysis-pinyin-1.7.4.jar、plugin-descriptor.properties、pinyin4j-2.5.0.jar,将其上传到ES服务器pinyin文件夹内即可; - 重启
节点安装完pinyin插件后,需要重启生效。 - 多节点集群
ES集群每个节点都进行上述安装。
测试
分词测试
- 建立测试索引
建立一个测试分词效果的索引medcl,在节点终端执行如下代码:
curl -XPUT http://localhost:9200/medcl/-d'{"index" : {"analysis" : {"analyzer" : {"pinyin_analyzer" : {"tokenizer" : "my_pinyin","filter" : ["standard"]}},"tokenizer" : {"my_pinyin" : {"type" : "pinyin","first_letter" : "none","padding_char" : " "}}}}}'
- 通过浏览器测试分词
http://10.110.13.144:9200/medcl/_analyze?text=%E5%88%98%E5%BE%B7%E5%8D%8E&analyzer=pinyin_analyzer
若测试成功,浏览器返回结果如下:
{"tokens":[{"token":"liudehua","start_offset":0,"end_offset":3,"type":"word","position":0}]}
建立拼音索引
- 建立索引并设置分词
curl -XPOST http://localhost:9200/medcl/_closecurl -XPUT http://localhost:9200/medcl/_settings -d'{"index" : {"analysis" : {"analyzer" : {"pinyin_analyzer" : {"tokenizer" : "my_pinyin","filter" : ["standard"],"type":"pinyin"}},"tokenizer" : {"my_pinyin" : {"type" : "pinyin","first_letter" : "none","padding_char" : " "}}}}}'curl -XPOST http://localhost:9200/medcl/_open
- 建立mapping
curl -XPOST http://localhost:9200/medcl/folks/_mapping -d'{"folks": {"properties": {"name": {"type": "multi_field","fields": {"name": {"type": "string","store": "no","term_vector": "with_positions_offsets","analyzer": "pinyin_analyzer","boost": 10},"primitive": {"type": "string","store": "yes","analyzer": "keyword"}}}}}}'
- 上传数据
curl -XPOST http://localhost:9200/medcl/folks/andy -d'{"name":"刘德华"}'
- 在浏览器请求检索
http://10.110.13.144:9200/medcl/folks/_search?q=name:liudehua
若检索成功,浏览器返回以下结果:
{"took":9,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":1,"max_score":3.0685282,"hits":[{"_index":"pinyin","_type":"test","_id":"andy","_score":3.0685282,"_source":{"name":"刘德华"}}]}}
参考资料
附件列表
ElasticSearch安装拼音插件(pinyin)的更多相关文章
- ElasticSearch安装拼音插件 elasticsearch-analysis-pinyin
elasticsearch-analysis-pinyin 是 ElasticSearch的拼音插件.强大的功能支持拼音等的搜索 1.下载源代码 源码地址https://github.com/medc ...
- ElasticSearch搜索引擎安装配置拼音插件pinyin
近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...
- ElasticSearch安装SQL插件
ElasticSearch安装SQL插件下载地址(中国大佬开发的,膜拜ing):https://github.com/NLPchina/elasticsearch-sql 1.记得选择和自己Elast ...
- Elasticsearch安装X-Pack插件
Elasticsearch安装X-Pack插件, 基于已经安装好的6.2.2版本的Elasticsearch, 安装6.2.2版本的X-Pack插件. 1.下载x-pack的zip包到本地 https ...
- elasticsearch安装head插件
安装Head插件 由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包. <1>安装Node.js 下载解压 wget https://node ...
- elasticsearch 安装 head插件
head插件 切换到Elasticsearch的安装目录 cd ~/demo/elasticsearch/es1 执行安装命令 [root@localhost es1]# bin/plugin ins ...
- Elasticsearch安装 + Head插件安装 + Bigdesk插件安装
一.Elasticsearch安装 1.官网下载zip包:https://www.elastic.co/downloads/elasticsearch 2.解压到自己指定的文件夹 3.运行\bin\e ...
- Elasticsearch 安装 Head 插件
引子:在上一篇文章Elasticsearch入门(一):CentOS 7.6 安装ES 7.0.0中,我们讲了如何在CentOS 7.6环境下安装 Elasticsearch 7.0.下面,我将讲一讲 ...
- Elasticsearch 安装head插件
一.简介 elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作.你可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp. Elastics ...
随机推荐
- bzoj 5403 Marshland
$n \leq 50$ sol: 放一个在 $x$ 处拐弯的 $L$ 形石头相当于在水平和垂直方向上各选一个与 $x$ 相邻的点,全局不能重复选 最小化危险度,相当于满足这些限制的情况下石头盖住的点危 ...
- Python 中的几种矩阵乘法 np.dot, np.multiply, *
使用array时,运算符 * 用于计算数量积(点乘),函数 dot() 用于计算矢量积(叉乘).使用matrix时,运算符 * 用于计算矢量积,函数 multiply() 用于计算数量积. 下面是使用 ...
- c++11之一: 基于范围的for循环
#include <iostream> using namespace std; int main(){ ]{,,,,}; for (int& e: ary) e *= ; for ...
- C# 常用文件操作
public class IoHelper { /// <summary> /// 判断文件是否存在 /// </summary> /// <param name=&qu ...
- SPRING中的线程池ThreadPoolTaskExecutor
一.初始化 1,直接调用 ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); //线程池所使用的缓冲队列 p ...
- Spring学习九 Servlet相关
servlet作用: 它驻留在 Web 服务器上,处理新来的请求和输出的响应.它与表示无关,实际上也不它应该与表示有关. 作为一名专业编程人员,您碰到的大多数 Java servlet 都是为响应 W ...
- python学习笔记(一):python简介和入门
最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型 ...
- Python函数(六)-嵌套函数
嵌套函数就是在一个函数里再嵌套一个或多个函数 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" def First(): pri ...
- 本地测试html文件时CSS效果显示, 但是当django的服务器上运行时效果不显示
本地测试时各种效果都显示, 但是当在django服务器上测试时, 效果却不显示, 原因是我将css文件放在一个static文件夹里, 没有在settings中设置static_dir选项.将stati ...
- Eloquent ORM模型中添加自定义值
我们都知道通过Laravel中数据库查询出来的模型对象都是基于数据库字段,今天给大家展示一个 Laravel Eloquent ORM 模型特性-附加值不存在于数据表中. 举个简单的栗子,一篇文章(p ...