8_ElaticSearch 基於boost的搜尋條件權重控制
阿新 • • 發佈:2019-01-03
8_ ElaticSearch 基於boost的搜尋條件權重控制
更多幹貨
需求
- 搜尋標題中包含java的帖子
- 同時,如果標題中包含hadoop或elasticsearch就優先搜尋出來
- 同時,如果一個帖子包含java hadoop,一個帖子包含java elasticsearch,包含hadoop的帖子要比elasticsearch優先搜尋出來
知識點
- 搜尋條件的權重,boost,可以將某個搜尋條件的權重加大,此時當匹配這個搜尋條件和匹配另一個搜尋條件的document
- 知識點計算relevance score時,匹配權重更大的搜尋條件的document,relevance score會更高,當然也就會優先被返回回來
- 預設情況下,搜尋條件的權重都是一樣的,都是1
例子
GET /forum/article/_search { "query": { "bool": { "must": [ { "match": { "title": "blog" } } ], "should": [ { "match": { "title": { "query": "java" } } }, { "match": { "title": { "query": "hadoop" } } }, { "match": { "title": { "query": "elasticsearch" } } }, { "match": { "title": { "query": "spark", "boost": 5 } } } ] } } }