write down,forget

elasticsearch-analysis-pinyin发布

<Category: Diving Into ElasticSearch> 查看评论

github地址:https://github.com/medcl/elasticsearch-analysis-pinyin

这个插件主要是集成了著名的Pinyin4j(http://pinyin4j.sourceforge.net/),可以实现在es里面很方便的进行中文拼音转换。

简单介绍下吧:

0.19.4以上版本安装方式如下:

该插件包括一个 分析器和2个切词器:pinyinpinyin_first_letter

pinyin分词器可以直接使用,pinyin和pinyin_first_letter可以用来进行自定义分词器

下面介绍下使用方法:

1.首先创建一个索引,名字就叫medcl,并设置好分词器定义

上面自定义了一个名为my_pinyin的tokenizer,然后通过它又自定义了一个名为pinyin_analyzer的分词器

2.接下来就可以进行分词的测试了,我们对中文姓名”刘德华“进行分词测试,首先要进行urlencode编码一下,再调用analyze分词测试接口,如下:

可以看到,”刘德华“被分词之后的结果为”liu de hua“,这样我们在搜索的时候,通过拼音也可以搜索这个词语了。

你可以使用es的multi-field来很方便的对中文添加pinyin的查询支持,mapping的一个demo如下:

创建一个索引试试

查询看看

另外,还有拼音分词插件还有一些参数可以选配:
first_letter即拼音首字母,可以设置为(默认为none):
prefix , append , only 和none ,对应上面“刘德华”的分词效果分别为”ldh liu de hua”,”liu de hua ldh”,”ldh”,”liu de hua”

本文来自: elasticsearch-analysis-pinyin发布