当前位置: 首页 > 知识库问答 >
问题:

如何查询所有嵌套字段为空的数据?弹性搜索v.7

萧霍英
2023-03-14

我正在尝试从索引中获取城市为空的所有记录。

源看起来像:

  "_index": "potatos_index",
            "_type": "_doc",
            "_id": "1240862",
            "_score": 14.41736,
            "_source": {
                "accountNumber": "1121212",
                "accountType": "Customer",
                "currency": "USD",
                "country": "USA",
                "cities": null,
           }

      "_index": "potatos_index",
                "_type": "_doc",
                "_id": "1240862",
                "_score": 14.41736,
                "_source": {
                    "accountNumber": "1121212",
                    "accountType": "Customer",
                    "currency": "USD",
                    "country": "USA",
                    "cities": [
                        {
                            "id": "1111",
                            "globalId": "1111"
                        }],
               }

因此,当我试图只搜索那些城市为空的源代码时,我会收到不同类型的错误。

must\u not exists返回包含非空城市的源。

我尝试了不同类型的脚本来过滤掉数据,但没有结果。

_mapping请求,城市有嵌套类型。

"cities": {
                    "type": "nested",
                    "properties": {

请给出建议

共有1个答案

萧芷阳
2023-03-14

您是否以嵌套方式编写了存在查询?

{
    "query": {
     "bool" : {
      "must_not": [
      "nested": {
        "path": "cities",
        "query": {
                "exists": {
                  "field": "cities"
                }
        }
      } ]
    }
   }
}

基于此讨论

 类似资料:
  • 我使用的是ES版本5.6。我有一个像下面这样的文档存储在ES中。 我想搜索所有已“启用”的字段。 我尝试了以下查询,但都不起作用。 但是下面的查询起作用了 因此,看起来只匹配顶级字段,而不匹配嵌套字段。是否有任何方法可以查询包含在所有字段中的文本,包括嵌套字段。我不想显式指定嵌套字段名。我正在寻找一种全局搜索,我想在文档中的任何地方搜索“文本”。 谢了。

  • 我试图为一个业务场景制定一个查询,其中我们有一个名为“types”的嵌套字段类型(即类似于字符串的ArrayList)。下面是以“类型”作为字段之一的索引文档示例。 文件1:{“类型”:[{“标签”:“对话”,},{“标签”:“暴力”,},{“标签”:“语言”,}} 文档2:{“类型”:[{“标签”:“对话框”,}} 现在,要求搜索查询最多匹配字段值中的一个值,即如果用户搜索“对话框”,那么它应该

  • 如何获得空数组和美国的结果和

  • 基本问题如下:有没有一种方便的方法可以为嵌套查询的所有字段指定多字段匹配?对于普通查询有效。这在嵌套查询中不起作用,可能是因为嵌套对象没有_all? 下面是更详细的问题: 我有一个名为“Parent”的嵌套文档,如下所示: 这是我用于制作儿童嵌套对象的映射: 这是一个查询,我想使用所有子字段的匹配来选择几个术语查询,以及一个术语查询: 上述查询不起作用,因为我无法为嵌套对象选择多匹配查询中的所有字

  • 我有一个弹性搜索索引集合,如下所示, 现在我需要通过将与其值匹配来搜索文档。(是一些字段,其值存储在中)例如。对于字段,如果它是,则应与上述文档匹配。 我尝试将其映射为嵌套对象,但我无法编写查询来搜索与其相应值匹配的2个或更多的键id。

  • 我正在使用spring数据elasticsearch和elasticsearch一起查询文档。我想对嵌套文档进行嵌套查询。 我有java版本: 而且 当我让spring数据进行映射时,我得到: 当我试图查询文档时,我遇到了经典的内部文档与嵌套文档的问题,它无法识别嵌套元素。 当我尝试更新映射以使用嵌套文档时,我得到“无法从非嵌套更改为嵌套”。 我是否应该告诉spring data es@Neste