我有一个solr集合,需要根据数据进行一些计算。我有TotalLapTime和DrivingTime,驱动程序的完成率是DrivingTime*100/TotalLapTime。我想了解每个团队的平均完成时间。我如何向Solr查询此信息?我只能通过统计数据得到驾驶时间的总和。我在Solr5
Solr系列:
ID |DrivingTime|TotalLapTime| Team
1 | 50 | 100 | A
2 | 25 | 100 | A
3 | 30 | 60 | B
4 | 50 | 60 | B
5 | 25 | 200 | C
预期产出:
TEAM | AvgCompletionRate
A | 37%
B | 66.5%
C | 12.5%
1条答案
按热度按时间slsn1g291#
首先,基于文档的搜索索引和分析的一个特点是,您通常应该做尽可能多的预处理,因为您的数据“通常”只读取一次,然后在许多不同的上下文中进行分析。因此,在这种情况下,最好将
completion_time
添加为单独的字段,并在将文档提交到索引时计算它。这使得对字段进行进一步分析变得更加容易,然后我们可以使用JSON Facet API为每次创建bucket,然后计算落入该bucket的条目的平均完成时间。
采用Solr的示例,通过嵌套函数对面进行排序示例: