1. 程式人生 > >Elasticsearch5.6搭建及拼音中文混合搜尋實現

Elasticsearch5.6搭建及拼音中文混合搜尋實現

功能

  • 分散式的搜尋引擎和資料分析引擎
  • 全文檢索,結構化檢索,資料分析
  • 對海量資料進行近實時的處理

環境搭建


  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. 使用者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榮耀