您可以通过将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示例下的信息构建的。
我可以使用SolrQuery并发出相同的请求吗?
获取异常org.apache.solr.client.solrj.impl.HttpSolrClient $ RemoteSolrException:来自本地主机的服务器错误:8983 / solr / Requests:不能在多值字段上使用FieldCache:请求
是的,您将必须使该字段成为单值。您是否以多值方式使用它?从您的以上帖子看来,情况并非如此。
这将是一个多值字段
将字段值的总和索引到单个字段中,然后使用该值求和。