温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - how compute sum of value for a field using intervals of different field in solr?
apache java solr solrj

java - 如何使用Solr中不同字段的间隔计算字段的值总和?

发布于 2020-03-27 10:42:14

我有以下格式的多个Solr文档

{要求:[23],时间戳:[1562146437780]}

我必须以时间戳为间隔获取请求总数。

我尝试使用构面,但无法弄清楚如何在两个字段上使用

我确实尝试过这个。但是在时间戳间隔内给了我文档数量。

 query.addNumericRangeFacet(TIMESTAMP, startTime, endTime, gap);

提前致谢

查看更多

查看更多

提问者
The Dude
被浏览
269
MatsLindh 2019-07-03 21:43

您可以通过将JSON facet API用于范围方面来实现此目的这些将允许您从上面的方面给出一个与该域(即存储桶中的文档)一起使用的子方面。

首先创建一个范围构面:

RangeFacetMap rangeFacet = new RangeFacetMap(TIMESTAMP, startTime, endTime, gap);

然后,添加一个调用求和的子构面:

rangeFacet.withStatSubFacet("requests_sum", "sum(requests)")

您可以使用以下命令将此请求发送给Solr:

final JsonQueryRequest request = new JsonQueryRequest()
    .setQuery("*:*")
    .withFacet("timestamps", rangeFacet);
QueryResponse queryResponse = request.process(solrClient, COLLECTION_NAME);

我目前没有要测试的实例或文档,但这是根据参考指南中Nester Facet示例下的信息构建的