弹性搜索-默认文档

问题描述 投票:0回答:1

我的索引中有3个文档

文档1:

x:1

文档2:

x:1y:1

文档3:

x:2y:3

我正在使用此查询来查找相关文档

"query" : {
        "bool" : {
            "should" : [

                {
                    "match" : {
                        "X" : {
                            "query" : 1,
                            "boost" : 500
                        }
                    }
                },{
                    "match" : {
                       "Y" : 5
                    }
                }
            ]
        }
    }

此查询按我期望的方式工作,当我寻找x:1,y:1时,我得到的DOC2得分最高。

我试图实现的目标:当查询为x:1,y:5时,我想获取DOC1(默认情况下)。有可能吗?

我知道我可以通过添加查询“ AND NOT EXISTS”来实现。还有另一种方法吗?

elasticsearch
1个回答
0
投票

如何强制x并使y为自愿,即:

GET xy/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "x": {
              "query": 1,
              "boost": 500
            }
          }
        }
      ],
      "should": [
        {
          "match": {
            "y": 5
          }
        }
      ]
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.