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

时间:2019-07-03 12:52:42

标签: java apache solr solrj

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

  

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

我必须在时间戳的间隔内获取请求总数。

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

我确实尝试过。但在时间戳记间隔内给了我文件数量。

Edit in settings.json

预先感谢

1 个答案:

答案 0 :(得分:0)

您可以使用the JSON facet API for range facets来实现。这些将允许您从上方的方面给出一个与域(即存储桶中的文档)一起使用的子方面。

您首先创建一个范围构面:

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 Example下的信息构建的。