Below is sample format of my JSON documents which is stored inside elasticsearch.
{
"_index": "in22",
"_type": "event",
"_id": "ET00009709",
"_version": 1,
"_score": 1,
"_source": {
"Group": "Event",
"Title": "Jurassic World",
"_boost": 3,
"inner_hits": [
{
"Code": "ET00009709",
"IsDefault": "",
"Language": "English",
"Format": "3D",
"Region": "MUMBAI"
},
{
"Code": "ET00009710",
"IsDefault": "Y",
"Language": "English",
"Format": "2D",
"Region": "CHEN"
},
{
"Code": "ET00009713",
"IsDefault": "",
"Language": "Hindi",
"Format": "2D",
"Region": "MUMBAI"
},
{
"Code": "ET00009714",
"IsDefault": "",
"Language": "Tamil",
"Format": "3D",
"Region": "MUMBAI"
},
{
"Code": "ET00009715",
"IsDefault": "",
"Language": "Hindi",
"Format": "3D",
"Region": "MUMBAI"
},
{
"Code": "ET00009716",
"IsDefault": "",
"Language": "Bengali",
"Format": "2D",
"Region": "MUMBAI"
}
]
}
}
Now what I want to achieve is whenever I search for Title=Jurassic World and region=MUMBAI
, I should get the above document but inner_hits
should not contain
{
"Code": "ET00009710",
"IsDefault": "Y",
"Language": "English",
"Format": "2D",
"Region": "CHEN"
}
So is this achievable?
What I tries so far is
{
"query": {
"nested": {
"path": "inner_hits",
"query": {
"bool": {
"must": [
{
"match": {
"inner_hits.Region": "MUMBAI"
}
}
]
}
}
}
}
}
But I couldn't achieve what i wanted, it didn't at all removed that block which contains Region: Chen
If anyone knows how to work around with this, please share. Thanks