• Elasticsearch 2.3.x 拼音分词 analysis-lc-pinyin


            我选择了elasticsearch-analysis-lc-pinyin作为拼音分词插件,它是一款elasticsearch拼音分词插件,可以支持按照全拼、首字母,中文混合搜索。

            elasticsearch-analysis-lc-pinyin一共有两个版本分别是1.4.5和2.2.2,和es的版本对应
            1.4.5 这个版本对应ES1.X
            2.2.2这个版本对应ES2.X
     
             请根据需要安装对应的版本,下面地址中压缩包已经包含了这两个版本
             安装插件需要将elasticsearch-analysis-lc-pinyin的源码自己maven  build出来,这样可以避免版本冲突
     
    现在网上没有找到有关2.X的插件安装和配置介绍,我摸索了很久才完成,这里记录下:
     

    编译安装:

    首先是build源码,使用将目录切到相应目录,我的是:
        cd F:softwareelasticsearch-analysis-lc-pinyin-dev_2.2.2elasticsearch-analysis-lc-pinyin
    然后执行maven build命令(当然,前提是你安装了maven,并配置好环境变量)
      mvn package
    然后就等待他的编译,完成时会在..elasticsearch-analysis-lc-pinyin arget eleases目录下生产一个zip,我们只需将这个zip解压到elasticsearch的plugin目录下即可。

    配置使用:

    lc 2.x是不需要在elasticsearch.yml里配置的,我们只需要重启elasticsearch实例即可。
    关键就是在于使用上mapping和DSL的配置。
    由于elasticsearch 1.x和2.x改动很大,所以我这里直接贴2.x的mapping配置了:
    curl -XPUT http://localhost:9200/addr    
    curl -XPOST http://localhost:9200/addr/std/_mapping -d'    
    {  
        "std": {  
            "properties": { 
                "detail_name": {  
                    "type": "string",  
                    "analyzer": "lc_index",  
                    "search_analyzer": "lc_search",  
                    "fields": {  
                       "cn": {  
                            "type": "string",  
                            "analyzer": "ik_max_word",  
                            "search_analyzer": "ik_max_word"  
                        }
                    }  
                },
                "door_name":{
                    "type": "string",  
                    "analyzer": "lc_index",  
                    "search_analyzer": "lc_search",  
                    "fields": {  
                       "cn": {  
                            "type": "string",  
                            "analyzer": "ik_max_word",  
                            "search_analyzer": "ik_max_word"  
                        }
                    }  
                }
            }  
        }  
    }' 
    主要问题是在于,1.x是 index_analyzer 为 lc_index ,但是2.x 没有了index_analyzer 这个参数。
     
    接下来就和1.x差不多了。
     




    文章源自微信公众号【刍荛采葑菲】,转载请注明。

  • 相关阅读:
    Qt 跟踪鼠标事件:setMouseTracking(true)
    Qt setMouseTracking使用
    Qt QGraphicsItem 鼠标点击事件编程方法
    Qt QGraphicsItem信号连接有关问题
    Qt 自定义QGraphicsItem
    Qt 视图框架QGraphicsItem
    Qt QGraphicsItem要点 积累
    Qt Q_UNUSED() 方法的使用
    Qt 绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
    Qt 使用QGraphicsItem绘制复杂的图形
  • 原文地址:https://www.cnblogs.com/churao/p/5884442.html
Copyright © 2020-2023  润新知