multi_match
查询提供了一个简便的方法用来对多个字段执行相同的查询。
best_fields
,most_fields
以及cross_fields
。
默认情况下,该查询以best_fields
类型执行,它会为每个字段生成一个match
查询,然后将这些查询包含在一个dis_max
查询中。下面的dis_max
查询:
{ "dis_max": { "queries": [ { "match": { "title": { "query": "Quick brown fox", "minimum_should_match": "30%" } } }, { "match": { "body": { "query": "Quick brown fox", "minimum_should_match": "30%" } } }, ], "tie_breaker": 0.3 } }
可以通过multi_match
简单地重写如下:
{ "multi_match": { "query": "Quick brown fox", "type": "best_fields", "fields": [ "title", "body" ], "tie_breaker": 0.3, "minimum_should_match": "30%" } }