elasticsearch - Facet by objects(tags) in an array -


i running query problem elasticsearch. have objects looks this:

{   "id":"1234",   "tags":[      { "tagname": "t1", "tagvalue":"v1"},      { "tagname": "t2", "tagvalue":"v2"},      { "tagname": "t3", "tagvalue":"v3"}   ] }  {   "id":"5678",   "tags":[      { "tagname": "t1", "tagvalue":"x1"},      { "tagname": "t2", "tagvalue":"x2"}   ] } 

and list of tagvalues tagname=t1, "v1" , "x1". tried

{   "filter": {     "bool": {       "must": [         {           "term":{             "tags.tagname": "t1"           }         }       ]     }   },   "facets": {     "tagvalues":{       "filter": {         "term": {           "tags.tagname": "t1"         }       },        "terms": {         "field": "tags.tagvalue",         "size": 30       }     }   } } 

it seems it's returning tagvalues tags "t1", "t2", , "t3".

can please me query? how can faceted list objects that's in array?

any appreciated.

thank you,

the main idea use nested type tags field. here mapping should use:

curl -xput localhost:9200/mytags -d '{   "mappings": {     "mytag": {       "properties": {         "id": {           "type": "string"         },         "tags": {           "type": "nested",           "properties": {             "tagname": {               "type": "string",               "index": "not_analyzed"             },             "tagvalue": {               "type": "string",               "index": "not_analyzed"             }           }         }       }     }   } }' 

then can reindex data , run query 1 below, first filter document containing tagname value t1 , using aggregations (don't use facets anymore deprecated), can again select tags tagname t1 , retrieve associated tagvalue fields. expected v1 , x1 values.

curl -xpost localhost:9200/mytags/mytag/_search -d '{   "size": 0,   "query": {     "filtered": {       "filter": {         "nested": {           "path": "tags",           "query": {             "term": {               "tags.tagname": "t1"             }           }         }       }     }   },   "aggs": {     "tags": {       "nested": {         "path": "tags"       },       "aggs": {         "values": {           "filter": {             "term": {               "tags.tagname": "t1"             }           },           "aggs": {             "values": {               "terms": {                 "field": "tags.tagvalue"               }             }           }         }       }     }   } }' 

Comments