solr - Solr 返回统计信息并排除等于零的值
问题描述
我不确定这是否可能,因为我目前正在学习 Solr,而且我还是个新手。我正在查询一个包含几十万件的数据集,并返回有关这些集价格的统计数据。我的大部分数据的价格都远高于 0(理想情况下会超过 150 或 500),但对于某些查询,0 的数量要多得多。
是否有某种方法可以将统计数据排除在最小值、最大值、平均值以及所有值低于设定值(在本例中为 0)的值之外?
我已经尝试过/select?q=*%3A*&wt=json&indent=true&stats=true&stats.field={!min=5000}PRICE&indent=true
,但似乎并不那么容易。
我看到的数据示例如下
"stats":{
"stats_fields":{
"PRICE":{
"min":0.0,
"max":81977.0,
"count":163,
"missing":0,
"sum":799747.0,
"sumOfSquares":5.9263205819E10,
"mean":4906.423312883436,
"stddev":18482.44220103939
}
}
}
解决方案
stats 组件与检索到的文档集一起使用,因此,如果您不希望0
将这些文档计算在内,请仅请求具有更高值的文档:
?q={0 TO *]
这将获取任何大于 0 的值(因此仍将包括 0.00001)。如果您的实际值从 1 开始,您可以使用q=[1 TO *]
1 来包含 1({
是独占范围,而[
包含在内)。
您还可以应用过滤器fq
来过滤结果集,或使用 JSON Facets 来计算一组文档的统计信息。
推荐阅读
- java - 第二个活动无法从意图中读取 getExtras
- c - recv 在套接字编程中是如何工作的?
- firebase - 未来的 for 循环在 Flutter 中不起作用并打印错误
- python - $ pytest 和 $ python -m pytest 测试之间的区别
- c# - ACTION_BOOT_COMPLETED 接收器不工作
- ios - Swift 重置约束崩溃
- reactjs - ts:“道具”可以用与另一种类型无关的任意类型实例化
- javascript - MIME 部分类型无效 - UI5
- mysql - 主键不能包含超过 767 或 1000 个字符作为主键
- java - 使用锁和条件暂停/恢复执行时出现 IllegalMonitorStateException