java - 如何使用 solr 中不同字段的间隔计算字段的值总和?
问题描述
我有以下形式的多个 solr 文档
{请求:[23],时间戳:[1562146437780]}
我必须以时间戳为间隔获取请求的总和。
我尝试使用构面,但不知道如何在两个字段上使用
我确实试过这个。但是给了我时间戳间隔内的文档计数。
query.addNumericRangeFacet(TIMESTAMP, startTime, endTime, gap);
提前致谢
解决方案
您可以通过使用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下的信息构建的。
推荐阅读
- ssl - 使用 256 个 SAN 创建 CSR
- android - 支持 htmlWorker 类的旧版本 itext gradle 依赖项是什么(在较新版本中已弃用)
- java - 带有 Thymeleaf 的 IntelliJ (2018.3) - 在静态内容的路径上没有自动完成?
- java - 我如何纠正樱桃皮卡问题的 DP 解决方案
- javascript - 如何根据文本框值动态访问 javascript 对象的属性?
- java - Map Reduce 数组越界异常
- kubernetes - 无法公开 Kubernetes 仪表板以从外部访问它
- javascript - 为什么警报换行符不起作用?
- python - 在 Django PostgreSQL 中排序太慢了
- java - org.osgi.framework.BundleException:无法解析模块:org.eclipse.jetty.plus