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

嵌套数组的弹性搜索搜索查询

贺栋
2023-03-14
{
    "application": {
        "package_name": "com.jackhenry.OregonFirstCU",
         "countries": [
            {
                "short_name": "US"
            }
         ]
},
"application": {
    "package_name": "com.jackhenry.OregonFirstCU",
    "countries": [
        {
            "short_name": "US"
        }
    ]
},
"application": {
        "package_name": "com.jackhenry.OregonFirstCU",
        "countries": [

        ]
    }
}

如何获得空数组和美国的结果application.countriesapplication.countries.short_name

共有1个答案

钱欣悦
2023-03-14

简而言之,您要获取包含美国或不包含任何国家/地区名称的结果。您可以在术语和不存在之间应用应该

{
"query": {
  "bool": {
     "should": [
        {
           "bool": {
              "must_not": {
                 "exists": {
                    "field": "application.countries.short_name"
                 }
              }
           }
        },
        {
           "term": {
              "application.countries.short_name": [
                 "US"
              ]
           }
        }
     ]
   }
 }

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

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我已经为一个问题挣扎了一段时间,所以我想我应该通过stackoverflow来解决这个问题。 “我的文档类型”有一个标题、一个语言字段(用于筛选)和一个分组id字段(我省略了所有其他字段以保持重点) 搜索文档时,我希望找到包含标题中文本的所有文档。对于每个唯一的分组id,我只需要一个文档。 我一直在关注tophits聚合,从我所看到的情况来看,它应该能够解决我的问题。 对我的索引运行此查询时: 我

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

  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 尝试排除其中一个子文档与查询不匹配的顶级文档。 对于下面的示例,我试图排除其中一个嵌套作业具有并且与匹配的所有文档。但是,由于其中一个嵌套作业文档与和公司匹配,因此返回此文档。我使用的是一个嵌套查询,其中公司名称必须匹配,并且过滤器的当前值为false。我如何才能使以下文件不被退回?