ElasticSearch:Bool查询评分问题

时间:2015-12-16 19:34:02

标签: search elasticsearch filter boolean-logic scoring

我的查询可能会在所有字段中搜索由下面部分匹配的空格分隔的短语。此外,评分按预期工作,其中' Joh'得分较低然后约翰'或者' John Do'得分低于约翰·多伊'

POST /user/_search
{
    "query": {
        "match": {
           "_all": {
               "query": "John Doe",
               "operator": "or",
               "fuzziness": 2,
               "prefix_length": 1
           }
        }
    }
}

我现在正在尝试在此查询的顶部添加一个图层,在该图层中返回上面的结果,其中' state'领域必须是加州'。我在下面的实现返回了所需的结果,但现在评分在找到匹配时具有名称分数。例如' Joh'其中state =' California'返回与John Doe'相同的分数。州='加州'。为什么得分不再正常?任何解决方案都将不胜感激。

GET /user/_search
{

   "query": {
      "filtered": {
         "query": {
            "match": {
               "_all": {
                  "query": "John Doe",
                  "operator": "or"
               },
        "filter": {
            "bool": {
               "must": [
                  {
                     "term": {
                        "state": "California"
                     }
                  }
               ]
            }
         }

            }
         }
      }
   }
}

0 个答案:

没有答案