You cannot query each object independently of the other objects in the array. If you need to be able to do this then you should use the nested datatype instead of the object data type.
Then you can use inner_hits where documents are returned based on matches in nested inner objects
Index Mapping:
{
"mappings": {
"properties": {
"data": {
"type": "nested"
}
}
}
}
Search Query:
{
"query": {
"nested": {
"path": "data",
"query": {
"bool": {
"must": [
{
"match": {
"data.e": "A"
}
}
]
}
},
"inner_hits":{}
}
}
}
Search Result:
"inner_hits": {
"data": {
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.6931471,
"hits": [
{
"_index": "64705886",
"_type": "_doc",
"_id": "1",
"_nested": {
"field": "data",
"offset": 0
},
"_score": 0.6931471,
"_source": {
"e": "A",
"v": 15.0
}
}
]
}
}
}
CLICK HERE to find out more related problems solutions.