elasticsearch - Elasticsearch:查找在数组中没有匹配某些值的嵌套对象的文档

标签 elasticsearch lucene full-text-search bigdata

在这里,您可以在ES上看到文档的一小部分。在详细信息数组中,可能有许多具有不同ID和值的不同对象,我必须创建查询以查找没有ID为“SR_Middle_Name”或ID为“SR_Middle_Name”和值“Aron”的所有文档

"details":[  
   {  
      "id":"SR_Name",
      "value":"Elvis"
   },
   {  
      "id":"SR_Middle_Name",
      "value":"Aron"
   }
]

最佳答案

您要查询的对象是一个嵌套对象。首先,请确保为嵌套对象提供正确的索引映射。之后,您可以对此进行嵌套查询。
例如-

GET /_search
{
    "query": {
        "nested" : {
            "path" : "details",            
            "query" : {
                "bool" : {
                    "must" : [
                    { "match_not" : {"details.id" : "SR_Middle_Name"} },                    
                    ]
                }
            }
        }
    }
}

关于elasticsearch - Elasticsearch:查找在数组中没有匹配某些值的嵌套对象的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49812331/

相关文章:

hadoop - 如何在ElasticSearch-Spark中获取实体索引

rest - 是否有验证 Elasticsearch 查询参数的包?

search - Elasticsearch 中的嵌套 vs 对象

python - 多个字段的模糊性-仅在某些字段上使用模糊性

MySQL "OR MATCH"在多个表上挂起(非常慢)

elasticsearch - Elasticsearch :更新现有索引中一个字段的映射

Elasticsearch groovy 脚本加载错误

java - Lucene 搜索两个或多个单词在 Android 上不起作用

sqlite - 如何使用SQLite FTS3匹配表中多列中的多个文本?

ruby-on-rails - heroku 是否还有其他搜索选项