Boost不适用于3 x应该在布尔查询中

时间:2019-04-14 13:05:53

标签: elasticsearch

我需要根据should子句的顺序/重要性从ES获得结果。我在bool查询中有三个“应该”子句。下面的json准确显示了顺序:首先应匹配通配符,如果有结果,则不应执行通配符或嵌套。如果没有结果,则嵌套通配符;如果没有结果,则匹配。我试图扩大领域,没有结果。

{  
   "track_scores":true,
   "sort":[  
      {  
         "readers_amount":{  
            "order":"desc"
         }
      },
      {  
         "rating":{  
            "order":"desc"
         }
      },
      {  
         "reviews_amount":{  
            "order":"desc"
         }
      },
      "_score"
   ],
   "query":{  
      "bool":{  
         "filter":[  
            {  
               "term":{  
                  "is_edition":false
               }
            }
         ],
         "must_not":[  
            {  
               "terms":{  
                  "id_category":[  
                     73
                  ]
               }
            }
         ],
         "minimum_should_match":1,
         "should":[  
            {  
               "wildcard":{  
                  "title.raw":{  
                     "value":"james bond*"
                  }
               }
            },
            {  
               "nested":{  
                  "path":"authors",
                  "query":{  
                     "bool":{  
                        "must":{  
                           "wildcard":{  
                              "authors.fullname.raw":"*james bond*"
                           }
                        }
                     }
                  }
               }
            },
            {  
               "match":{  
                  "title":{  
                     "query":"james bond"
                  }
               }
            }
         ]
      }
   },
   "from":0,
   "size":5
}

0 个答案:

没有答案