因公司使用ES發現用MYSQL存放的字段中有一個帶逗號的數據匹配不出來。在網站上找了好久,發現有一位同學寫了一個帶逗號的分析器,果然可以匹配出。做一下筆記,以備忘記。好記性不如爛筆頭
1:新建分析器
curl -XPOST 'http://172.18.0.4:9200/demo/?pretty' -d ' { "settings": { "analysis": { "analyzer": { "douhao": { "type":"pattern", "pattern":"," } } } } }' |
2:將分析器mapping到新的字段上(舊的字段上是無法修改mapping),當然最好的辦法是使用別名,可以零停機切換
curl -XPOST 'http://172.18.0.4:9200/demo/_mapping/master?pretty' -d ' { "properties": { "master_id": { "type":"string", "index":"not_analyzed" }, "serve_regions": { "type":"string", "analyzer":"douhao", "search_analyzer":"douhao" } } }' |
3:同步MYSQL的數據到ES(或者手動添加兩條數據)
curl -PUT 'http://172.18.0.4:9200/demo/master/?pretty' -d '{"master_id":"123","serve_regions":"1,2,3"}' curl -PUT 'http://172.18.0.4:9200/demo/master/?pretty' -d '{"master_id":"321","serve_regions":"1"}' curl -PUT 'http://172.18.0.4:9200/demo/master/?pretty' -d '{"master_id":"231","serve_regions":"2,3"}' |
4:測試 http://172.18.0.4:9200/_plugin/head
參考文檔