为了账号安全,请及时绑定邮箱和手机立即绑定

Elastic Search / Elasica php - 或查询包含 NULL 的字段不起作用

Elastic Search / Elasica php - 或查询包含 NULL 的字段不起作用

PHP
犯罪嫌疑人X 2023-03-04 14:15:03
如何仅查询 location_idnull 或locations.country_id 在一组给定 ID 中的文档?这是当前查询,但它根本不返回任何内容...如果我从查询中删除 location_id,它会起作用并至少返回与国家/地区 ID 匹配的文档。{   "bool":{      "must":[         {            "bool":{               "must_not":[                  {                     "exists":{                        "field":"location_id"                     }                  }               ],               "must":[                  {                     "terms":{                        "locations.country_id":[                           18                        ]                     }                  }               ]            }         }      ]   }}
查看完整描述

1 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

在 elasticsearch 中,必须是 AND 并且应该表现得像 OR 您的查询转换为 locationId is null AND locations.country_id In [set of ids]。must需要换成should。


询问:


{

  "query": {

    "bool": {

      "should": [

        {

          "bool": {

            "must_not": [

              {

                "exists": {

                  "field": "location_id"

                }

              }

            ]

          }

        },

        {

          "terms": {

            "locations.country_id": [

              18

            ]

          }

        }

      ],

      "minimum_should_match": 1

    }

  }

}


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信