Elasticsearch5.6搭建及拼音中文混合搜索实现

来源:互联网 发布:spring mvc传对象数组 编辑:程序博客网 时间:2024/06/15 19:54

功能

  • 分布式的搜索引擎和数据分析引擎
  • 全文检索,结构化检索,数据分析
  • 对海量数据进行近实时的处理

环境搭建


  1. 从官网下载压缩包 elasticsearch-5.6.1.tar.gz;
  2. 解压 tar -zxvf elasticsearch-5.6.1.tar.gz $ES_HOME
  3. 因es只能由除root以外的用户启动,则给予相应的权限,如给common用户,chown -R common:root elasticsearch-5.6.1
  4. 配置,vi $ES_HOME/config/elasticsearch.yml
    主要修改以下配置
    cluster.name: **
    node.name: node-1
    network.host: 192.168.0.250
    http.port: 9200
  5. 添加ik、pinyin插件,将对应版本的插件下载放到$ES_HOME/plugins下即可
    https://github.com/medcl/elasticsearch-analysis-ik
    https://github.com/medcl/elasticsearch-analysis-pinyin
  6. 用户common启动es

bin/elasticsearch -d 后台启动
  • 可通过chrome插件 elasticsearch-head 连接es
  • 应用

    • 新建index,自定义ik_pinyin_analyzer分析器
    curl -XPUT "http://localhost:9200/index_name/" -d'{    "index": {        "analysis": {            "analyzer": {                "ik_pinyin_analyzer": {                    "type": "custom",                    "tokenizer": "ik_smart",                    "filter": ["my_pinyin", "word_delimiter"]                }            },            "filter": {                "my_pinyin": {                    "type": "pinyin",                    "first_letter": "prefix",                    "padding_char": " "                }            }        }    }}
    • 创建一个type并设置mapping
    curl -XPOST http://localhost:9200/index_name/app/_mapping -d'{    "app": {        "properties": {            "appname": {                "type": "keyword",                "fields": {                    "pinyin": {                        "type": "text",                        "store": "no",                        "term_vector": "with_positions_offsets",                        "analyzer": "ik_pinyin_analyzer",                        "boost": 10                    }                }            }        }    }}
    • 可通过外部数据导入index,或者手动put
    • 最后便可通过es来搜索
    curl -XGET http://localhost:9200/index_name/app/_search?q=appname.pinyin:wangzhe荣耀
    阅读全文
    0 0
    原创粉丝点击