Elasticsearch5.6搭建及拼音中文混合搜尋實現
阿新 • • 發佈:2019-02-09
功能
- 分散式的搜尋引擎和資料分析引擎
- 全文檢索,結構化檢索,資料分析
- 對海量資料進行近實時的處理
環境搭建
- 從官網下載壓縮包 elasticsearch-5.6.1.tar.gz;
- 解壓 tar -zxvf elasticsearch-5.6.1.tar.gz $ES_HOME
- 因es只能由除root以外的使用者啟動,則給予相應的許可權,如給common使用者,chown -R common:root elasticsearch-5.6.1
- 配置,vi $ES_HOME/config/elasticsearch.yml
主要修改以下配置
cluster.name: **
node.name: node-1
network.host: 192.168.0.250
http.port: 9200 - 使用者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榮耀