我有多个以下形式的 solr 文档
{ requests : [23], timestamp : [1562146437780] }
我必须获取时间戳间隔内的请求总和。
我尝试使用构面,但不知道如何在两个字段上使用
我确实尝试过这个。但给了我时间戳间隔内的文档计数。
query.addNumericRangeFacet(TIMESTAMP, startTime, endTime, gap);
提前致谢
最佳答案
您可以使用 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 下的信息构建的在引用指南中。
关于java - 如何使用 solr 中不同字段的间隔计算字段的值之和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870618/