minimum_should_match 的使用
你可以使用' minimum_should_match '参数来指定返回的文档
must
匹配的' should '子句的数量或百分比。
如果' bool '查询至少包含一个' should '子句且没有' must '或' filter '子句,则默认值为' 1 '。否则,默认值为“0”。
得分 与 bool.filteredit
在过滤器元素下指定的查询对得分没有影响——得分返回为0。分数只受指定查询的影响。例如,以下三个查询都返回状态字段包含术语active的所有文档。
第一个查询将所有文档的得分赋为0,因为没有指定得分查询:
GET _search
"query": {
"bool": {
"filter": {
"term": {
"status": "active"
这个bool查询有一个match_all查询,它为所有文档分配1.0的分数。
GET _search
"query": {
"bool": {
"must": {
"match_all": {}
"filter": {
"term": {
"status": "active"
这个constant_score查询的行为与上面的第二个例子完全相同。constant_score查询为过滤器匹配的所有文档分配一个1.0的分数。
GET _search
"query": {
"constant_score": {
"filter": {
"term": {
"status": "active"
negative
(必需,查询对象)用于降低匹配文档的相关度的查询。<br />如果返回的文档与正查询匹配,则boost查询计算文档的最终关联得分,如下所示:<br />1. 从正面查询中获取原始的相关性得分。<br />2. 将分数乘以negative_boost值。
negative_boost
(必需,浮点数)0到1.0之间的浮点数,用于降低匹配负查询的文档的相关性得分。
常数分数查询 Constant score query
包装一个过滤器查询,并使用等于boost参数值的相关分数返回每个匹配的文档。
GET /_search
"query": {
"constant_score": {
"filter": {
"term": { "user.id": "kimchy" }
"boost": 1.2
filter
(必需的,查询对象)要运行的过滤查询。任何返回的文档都必须与此查询匹配。<br />过滤查询不计算关联分数。为了提高性能,Elasticsearch会自动缓存经常使用的过滤器查询。
boost