我有这些文件:
curl -XPOST -H 'Content-Type: application/json' "http://localhost:9200/test/_bulk?pretty" -d'
{"index":{"_index":"test","_type":"product"}}
{"id_product":"1", "categories":[1,2] }
{"index":{"_index":"test","_type":"product"}}
{"id_product":"2", "categories":[25,28] }
我只需要获取类别。 我可以得到类似的输出吗?
[1,2,25,28]
答案 0 :(得分:1)
我认为无法告诉ES仅返回categories
,但是您可以使用terms aggregation来提取搜索上下文具有的所有类别。
示例:
{
"size":0,
"aggs":{
"byCategory":{
"terms":{
"field": "categories"
}
}
}
}
这将返回类似:
{
"aggregations": {
"byCategory": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 1,
"doc_count": 1
},
{
"key": 2,
"doc_count": 1
},
{
"key": 25,
"doc_count": 1
},
{
"key": 28,
"doc_count": 1
}
]
}
}
}
如您所见,现在您可以遍历buckets.key
以提取搜索中存在的所有类别。