Part of my mapping is:
"individual_attributes" : {
"type" : "nested",
"properties" : {
"template_id" : {"type" : "integer"},
"attributes_set" : {
"type" : "nested",
"properties" : {
"attribute_id" : {"type" : "integer"},
"attribute_value" : {"type" : "string", "index" : "not_analyzed"}
}
}
}
}
I need to filter those document which has attribute_id='x' with attribute_value for given id equals 'y'. So that I need matching for pair of fields. Is it possible? Or do I need to change my mapping to something like this:
"individual_attributes" : {
"type" : "nested",
"properties" : {
"template_id" : {"type" : "integer"},
"attributes_set" : {
"type" : "nested",
"properties" : {
"attribute_id" : {"type" : "integer",
"properties" : {
"attribute_value" : {"type" : "string", "index" : "not_analyzed"}
}
},
}
}
}
}
Sample data:
"attributes_set": [
{
"attribute_id": 17,
"attribute_value": "dolorum"
},
{
"attribute_id": 15,
"attribute_value": "at"
},
{
"attribute_id": 18,
"attribute_value": "maxime"
},
{
"attribute_id": 14,
"attribute_value": "et"
},
{
"attribute_id": 11,
"attribute_value": "nemo"
},
{
"attribute_id": 12,
"attribute_value": "rem"
},
{
"attribute_id": 10,
"attribute_value": "eius"
},
{
"attribute_id": 19,
"attribute_value": "deleniti"
},
{
"attribute_id": 13,
"attribute_value": "modi"
},
{
"attribute_id": 16,
"attribute_value": "neque"
}
]
I need: SELECT * WHERE attribute(16, for instance)=value(neque). Another words I need matching of pair of fields within one data set:
{
"attribute_id": x,
"attribute_value": "y"
}