ElasticSearch -搜索任意键下嵌套对象的值

jtoj6r0c  于 2022-12-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(121)

我在ES中使用以下结构编制了文档索引:
文件1:

{
 "map": {
   "field1": ["foo"],
   "field2": ["bar"]
 }
}

文档2

{
 "map": {
   "fieldN": ["foo"],
 }
}

我需要搜索与“map”对象中任意键下的特定值相匹配的所有文档。由于“map”中的字段是动态的,因此可以在任意键下找到该值。
我尝试了不同的查询,但似乎都不起作用,因为看起来对于所有情况,我都需要显式指定字段(例如:Map字段1 =“foo”)
我希望能够做这样的搜索:

{ 
  "fields": ["map.*"], 
  "query": "foo" 
}

关于如何进行此类搜索有何建议?

tkclm6bt

tkclm6bt1#

可以使用multi-match querymap.*字段中搜索查询词

{
  "query": {
    "multi_match" : {
      "query":    "foo", 
      "fields": [ "map.*" ] 
    }
  }
}

相关问题