我有一系列文档,例如:
{
myTime : <a date_time>,
myVal : <a number>
}
我想知道该数字的最大小时平均值。因此,基本上,我希望每个小时的水桶的平均值为myVal
,然后找到该平均值的最大值。
我尝试使用以下json faceting,但是当然不起作用,抱怨avgMyVal
不是一个已知的领域:
json.facet={
maxAvgMyVal : "max(avgMyVal)",
tempi: {
type: range,
field: myTime,
start: "NOW-7DAYS",
end: "NOW",
gap: "%2B1HOUR",
facet: {
avgMyVal: "avg(myVal)"
}
}
}
有没有办法让索尔这样做?还是我错过了什么?
使用solr 7.2.1。
可以在一个请求中执行此操作,但是您至少可以使用两个单独的请求(或一个不介意分类的话(执行此操作(。
您可以按照avg
函数返回的值对面进行排序,然后检索第一个值:
sort: "avgMyVal desc"
..在您的tempi
定义内。如果需要通过tempi
中的间隔对结果进行排序,则可以在检索后进行排序以进行显示,或进行两个查询 - 使用limit: 1
在avgMyVal
中检索最大值。