You cannot do this in one query, but it is pretty easy in two:
Listing Attributes
, :
curl -XGET "http://localhost:9200/your_index/your_type/_mapping"
, :
curl -XGET "http://localhost:9200/your_index/your_type/_search" -H 'Content-Type: application/json' -d'
{
"size": 0,
"aggs": {
"field1Values": {
"terms": {
"field": "field1",
"size": 20
}
},
"field2Values": {
"terms": {
"field": "field2",
"size": 20
}
},
"field3Values": {
"terms": {
"field": "field3",
"size": 20
}
},
...
}
}'
20 .
20 (, ). "size" , . , , - 10 , , , .
, , , . , , , cardinality * 2
.
curl -XGET "http://localhost:9200/your_index/your_type/_search" -H 'Content-Type: application/json' -d'
{
"size": 0,
"aggs": {
"field1Cardinality": {
"cardinality": {
"field": "field1"
}
},
"field2Cardinality": {
"cardinality": {
"field": "field2"
}
},
"field3Cardinality": {
"cardinality": {
"field": "field3"
}
},
...
}
}'
, . , , , ,
:
{
"attributes":[
{
"name":"1",
"value":[
"a"
]
},
{
"name":"2",
"value":[
"b",
"c"
]
},
{
"name":"3",
"value":[
"d",
"e"
]
},
{
"name":"4",
"value":[
"f",
"g"
]
},
{
"name":"5",
"value":[
"h",
"i"
]
}
]
}
, "" "", "", , :
curl -XGET "http://localhost:9200/your_index/your_type/_search" -H 'Content-Type: application/json' -d'
{
"size": 0,
"aggs": {
"attributes": {
"terms": {
"field": "attributes.name",
"size": 1000
},
"aggs": {
"values": {
"terms": {
"field": "attributes.value",
"size": 100
}
}
}
}
}
}'
.