我正在使用elasticsearch构建排行榜。我想使用以下查询查询点数大于给定金额的所有文档:
{
"constant_score" : {
"filter" : {
"range" : {
"totalPoints" : {
"gt": 242
}
}
}
}
这很有效 - elasticsearch适当地返回点大于242的所有文档。但是,我真正需要的是匹配此查询的元素数。由于我通过网络发送结果,如果查询只返回计数,而不是与过滤器匹配的所有文档,将会很有帮助。
如何让elasticsearch仅报告与过滤器匹配的文档数量?
编辑:我已经了解到我正在寻找的是将search_type
设置为count
。但是,我不知道如何用elastic.js做到这一点。任何愿意投入建议的节点制作者?
答案 0 :(得分:1)
您可以将查询类型计数用于此目的:
这是一个可以帮助你的例子:
GET /mymusic/itunes/_search?search_type=count
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"year": {
"gt": 2000
}
}
}
}
}
}