zoukankan      html  css  js  c++  java
  • ElasticSearch1.7.1拼音插件elasticsearch-analysis-pinyin-1.3.3使用介绍

    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

  • 相关阅读:
    linux shell 总结
    python小结
    python与execl的读写
    利用burpsuits暴力破解登陆界面
    python之函数的使用
    Sublime text怎么识别input函数
    ping的禁止
    Hbase的配置与使用
    JAVA 利用反射自定义数据层框架
    JAVA实现网页上传头像
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/9084326.html
Copyright © 2011-2022 走看看