ElasticSearch拼音插件elasticsearch-analysis-pinyin使用介绍

https://my.oschina.net/xiaohui249/blog/214505

摘要: elasticsearch-analysis-pinyin是ElasticSearch的一个分词插件,能够实现拼音分词索引。本文主要介绍该插件的安装和具体使用方法。

关于elasticsearch-analysis-pinyin的介绍,就此省略,看完此文后你就会知道它有多神奇。

一、安装

安装该插件的前提是你已经安装了ES(ElasticSearch),如果没有参照安装向导。

安装该插件需要2个jar包,一个当然是elasticsearch-analysis-pinyin.jar,另一个是pinyin4j.jar。很多网站都有下载,但是建议亲自编译elasticsearch-analysis-pinyin生成,因为这样不会有版本问题。好,下面介绍编译源码获取上述两个jar包的方法。

1、下载源码(需要安装了git)

    git clone https://github.com/medcl/elasticsearch-analysis-pinyin.git

2、编译(需要安装了maven)

    进入download下来的源码目录:cd elasticsearch-analysis-pinyin,然后执行编译命令:mvn clean install -Dmaven.test.skip。编译成功之后,你将在elasticsearch-analysis-pinyin/target目录中看到elasticsearch-analysis-pinyin的jar包,我编译完成之后,生成的jar包名称为:elasticsearch-analysis-pinyin-1.2.1.jar,然后elasticsearch-analysis-pinyin/lib目录中看到pinyin4j的jar包,我的jar包名称为:pinyin4j-2.5.0.jar。

3、具体安装

    在ES_HOME目录下创建一个plugins目录(如果没有的话),然后在plugins目录下创建pinyin目录,将前两个步骤中得到的jar包拷贝到ES_HOME/plugins/pinyin目录下面。ok,插件安装基本完成,easy吧!

二、如何使用

首先建议重新启动ES服务。

1、分词测试

    (1) 创建一个测试索引:

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" : " "

}

}

}

}

}'

(2) 通过浏览器请求分词效果

        在浏览器输入

http://your_es_host:9200/medcl/_analyze?text=%e5%88%98%e5%be%b7%e5%8d%8e&analyzer=pinyin_analyzer

返回结果如下,分词成功,该插件能够轻易的得到中文对应的拼音分词,然后搜索可以对输入的拼音提示对应的中文,提高搜索体验。

{"tokens":[{"token":"liu de hua ","start_offset":0,"end_offset":3,"type":"word","position":1}]}

2、使用该插件创建索引,实现上图的拼音提示功能

    (1) 创建空索引,设置分词器

curl -XPOST http://localhost:9200/medcl/_close (if you had create index 'medcl', do this)

curl -XPUT http://localhost:9200/medcl/_settings -d'

{

"index" : {

"analysis" : {

"analyzer" : {

"pinyin_analyzer" : {

"tokenizer" : ["my_pinyin"],

"filter" : ["standard","nGram"]

}

},

"tokenizer" : {

"my_pinyin" : {

"type" : "pinyin",

"first_letter" : "prefix",

"padding_char" : ""

}

}

}

}

}'

curl -XPOST http://localhost:9200/medcl/_open (if you had create index 'medcl', do this)

(2) 创建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"

}

}

}

}

}

}'

(3) 开始索引数据

curl -XPOST http://localhost:9200/medcl/folks/andy -d'{"name":"刘德华"}'

(4) 检索数据

    在浏览器一次输入下面的连接,你将会搜索得到上面索引的那个记录:刘德华。

http://localhost:9200/medcl/folks/_search?q=name:刘

http://localhost:9200/medcl/folks/_search?q=name:刘德

http://localhost:9200/medcl/folks/_search?q=name:liu

http://localhost:9200/medcl/folks/_search?q=name:ldh

http://localhost:9200/medcl/folks/_search?q=name:dehua

ElasticSearch1.7.1拼音插件elasticsearch-analysis-pinyin-1.3.3使用介绍的更多相关文章

  1. ElasticSearch安装拼音插件(pinyin)

    环境介绍 集群环境如下: Ubuntu14.04 ElasticSearch 2.3.1(3节点) JDK1.8.0_60 开发环境: Windows10 JDK 1.8.0_66 Maven 3.3 ...

  2. ElasticSearch搜索引擎安装配置拼音插件pinyin

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

  3. ElasticSearch安装拼音插件 elasticsearch-analysis-pinyin

    elasticsearch-analysis-pinyin 是 ElasticSearch的拼音插件.强大的功能支持拼音等的搜索 1.下载源代码 源码地址https://github.com/medc ...

  4. es6.4.0安装和配置IK+拼音插件 实现非全拼搜索

    安装IK分词器 一.进入到es的plugins文件夹创建文件夹analysis-ikmkdir analysis-ik二.下载ik压缩包文件wget https://github.com/medcl/ ...

  5. elasticsearch插件安装之--拼音插件

    /** * vm12下的centos7.2 * elasticsearch 5.2.2 */ 有时在淘宝搜索商品的时候, 会发现使用汉字, 拼音, 或者拼音混合汉字都会出来想要的搜索结果, 今天找了一 ...

  6. Elasticsearch IK+pinyin

    如何在Elasticsearch中安装中文分词器(IK+pinyin)   如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题——中文词语被分成了一个一个的汉字 ...

  7. Elasticsearch:Pinyin 分词器

    Elastic的Medcl提供了一种搜索Pinyin搜索的方法.拼音搜索在很多的应用场景中都有被用到.比如在百度搜索中,我们使用拼音就可以出现汉字: 对于我们中国人来说,拼音搜索也是非常直接的.那么在 ...

  8. [功能帮助类] C#取汉字拼音的首字母PinYin帮助类 (转载)

    点击下载 PinYin.rar 主要功能就是取汉字拼音的首字母,只要你输入一个汉字,或者是多个汉字就会取出相应的道字母,主要是方便查询使用的 /// <summary> /// 编 码 人 ...

  9. elasticsearch安装与使用(4)-- 安装中文分词插件elasticsearch 的 jdbc

    前言 elasticsearch(下面简称ES)使用jdbc连接mysql比go-mysql-elasticsearch的elasticsearch-river-jdbc能够很好的支持增量数据更新的问 ...

随机推荐

  1. ABAP术语-Customer Enhancement

    Customer Enhancement 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/18/1043874.html Adjustment ...

  2. ABAP术语-Company Code

    Company Code 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/16/1040816.html The smallest organ ...

  3. hibernate笔记1

    1.  数据库中的表关系 一对一.一对多(多对一).多对一 2.  如何确立表中的表关系 一对多的关系如何实现:使用外键约束,一的方称为主表,多的方称为从表. 外键:从表中有一列,该列的取值除了nul ...

  4. 在Liunx上搭建FTP并配置用户权限

    伴随着.Net Core的开源,公司前几天上了新的Liunx服务器,我在前几篇文章中介绍了如何搭建环境以及部署.Net Core应用. 然后,今天客户和我说想自己给网站做推广,需要用FTP链接我们的服 ...

  5. maven-生命周期与插件

    Maven的生命周期是抽象的,具体的操作由插件实现,类似于java的模板设计模式. 1.生命周期 认识生命周期 maven有clean.default.site三种生命周期,每种生命周期都包含一些阶段 ...

  6. Mysql基础3-数据操作语言DML-数据查询语言DQL

    主要: 数据操作语言DML 数据查询语言DQL 数据操作语言DML DML: Data Mutipulation Language 插入数据(增) 一般插入数据形式 1)形式1: insert [in ...

  7. 用filter()筛选出素数

    'use strict'; function get_primes(arr) { return arr.filter(function isPrime(number) { if (typeof num ...

  8. (数据科学学习手札32)Python中re模块的详细介绍

    一.简介 关于正则表达式,我在前一篇(数据科学学习手札31)中已经做了详细介绍,本篇将对Python中自带模块re的常用功能进行总结: re作为Python中专为正则表达式相关功能做出支持的模块,提供 ...

  9. Spring 的好处?

    1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监 ...

  10. Linq工具篇(1)——使用LinqPad

    学习Linq,有一个非常强大的工具,那就是LinqPad,具体功能有多强大就不说了,网上百度一下就可以知道,百闻不如一见,用用就知道,在网上下载一个绿色版的,无需安装,直接运行,界面如下: 具体功能, ...