Elasticsearch 論壇實戰-基於multi_match語法實現dis_max+tie_breaker
阿新 • • 發佈:2020-12-23
技術標籤:Elasticsearch實戰elasticsearch
Elasticsearch實戰
準備資料
PUT /forum/post/_bulk {"index":{"_id":1}} {"title":"java php", "content":"forum open MIjMReACTGaN564AnCZuHg"} {"index":{"_id":2}} {"title":"elasticsearch java apm-agent-configuration KvkaTyKFT-2zocQNC9j5nA", "content":"kibana post open MIjMReACTGaN564AnCZuHg 4508327 NfcOxURmuyoBIxJBSbvw MIjMReACTGaN564AnCZuHg"} {"index":{"_id":3}} {"title":"elasticsearch hadoop", "content":"kibana green open"}
繼續上一課時dis_max查詢上面的資料
minimum_should_match控制搜尋結果的精準度(去長尾),只有匹配一定數量的關鍵詞的資料,才能返回
boost 提升權重
GET /forum/post/_search { "query": { "dis_max": { "queries": [ { "match": { "title": { "query": "java kibana", "minimum_should_match": "50%", "boost": 2 } } }, { "match": { "content": { "query": "java kibana", "minimum_should_match": "50%" } } } ], "tie_breaker": 0.7 } } }
使用multi_match簡寫上面的命令
{ "query": { "multi_match": { "query": "java kibana", "type": "best_fields", "fields": ["title^2","content"], "tie_breaker": 0.7, "minimum_should_match": "50%" } } }
歡迎諮詢公眾號《小馬JAVA》