2016-11-16 94 views
0

我有一个名为'bundles'的嵌套对象,通常包含多个对象。使用这个查询,我可以成功地查询捆绑中的对象的id,但是我没有写出可以查询多个id的查询。建议?嵌套弹性搜索2查询中的多个值

{ 
 
    "query": { 
 
    "nested": { 
 
     "path": "bundles", 
 
     "query": { 
 
     "bool": { 
 
      "must": [ 
 
      { 
 
       "match": { 
 
       "bundles.id": 43273 
 
       } 
 
      } 
 
      ] 
 
     } 
 
     }, 
 
     "inner_hits": {} 
 
    } 
 
    } 
 
}

回答

0

也许你想 “应该”,而不是 “必须” 在布尔过滤器。例如:

{ 
    "query": { 
    "nested": { 
     "path": "bundles", 
     "query": { 
     "bool": { 
      "should": [ 
      { 
       "match": { 
       "bundles.id": 43273 
       }, 
       { 
       "match": { 
       "bundles.id": 433373 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 

如果字段可以完全匹配,也可以使用术语查询。例如:

{ 
    "query": { 
    "nested": { 
     "path": "bundles", 
     "query": { 
     "bool": { 
      "must": [ 
      { 
       "terms": { 
       "bundles.id": [1140000000, 114] 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
}'