如何使用 solr 中不同字段的间隔计算字段的值总和?
how compute sum of value for a field using intervals of different field in solr?
我有多个格式如下的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 下的信息构建的。
我有多个格式如下的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 下的信息构建的。