我的示例文档如下所示。
{
"user": "dslfjd",
"productLength": 68,
"productPrice": 4500,
"action": "Made Purchse"
}
我想获取所有带来价格在4000到10000之间,长度在50到100之间的产品的用户。下面的查询返回所有满足上述条件的文档。
{
"query": {
"bool": {
"must": [
{
"term": {
"act": "Made Purchase"
}
},
{
"range": {
"productPrice": {
"gte": 4000,
"lte": 10000
}
}
},
{
"range": {
"length": {
"gte": 50,
"lte": 100
}
}
}
]
}
}
}
在这里,我将获取满足上述查询子句的所有文档,我什至可以通过指定来预测我的响应,"_source" = ["user"]
这样我就不会得到整个文档,而只是user
相反,我想要的是所有独特的不同用户的列表。而不是所有可能具有user
重复字段的文档。
像下面这样的聚合
{
"aggs": {
"unique_users": {
"terms": {
"field": "user"
}
}
}
}
聚合所有文档,而不是我想要对满足任何查询的文档进行聚合。我觉得我错过了一个简单的事情,比如在我的聚合中定义我的查询。但我不知道它是什么。