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%" } }
注意到以上的type
属性为best_fields
。 minimum_should_match
和operator
参数会被传入到生成的match
查询中。
在字段名中使用通配符
字段名可以通过通配符指定:任何匹配了通配符的字段都会被