我有一些文件,例如:
{
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做到这一点?还是我错过了什么?
使用Solr 7.2.1。
答案 0 :(得分:0)
可能可以在一个请求中执行此操作,但是您至少可以对两个单独的请求(或者如果您不介意排序,则可以执行一个请求)。
您可以sort the facets by the value returned by your avg
function并检索第一个值:
sort: "avgMyVal desc"
..在您的tempi
定义中。如果您需要按tempi
中的间隔对结果进行排序,则可以对结果进行排序以在检索后显示,也可以进行两次查询-使用limit: 1
来检索{{1}中的最大值}。