首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算列的平均值( Solr )

计算列的平均值( Solr )
EN

Stack Overflow用户
提问于 2022-09-14 20:46:14
回答 1查看 29关注 0票数 0

我有一个solr集合,我需要一些基于数据的计算。我有TotalLapTime和DrivingTime,驱动程序的完成速度是DrivingTime*100/TotalLapTime。我想找出每个队的平均完成时间。如何查询Solr以获得此结果?我只能使用统计数据得到DrivingTime之和。我在Solr5上

Solr集合:

代码语言:javascript
复制
    ID |DrivingTime|TotalLapTime| Team
    1  |   50    |    100       |  A
    2  |   25    |    100       |  A
    3  |   30    |    60        |  B
    4  |   50    |    60        |  B
    5  |   25    |    200       |  C

预期输出:

代码语言:javascript
复制
TEAM | AvgCompletionRate
  A  |      37%
  B  |      66.5%
  C  |      12.5%
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-16 07:16:01

首先,基于文档的搜索索引和分析的一个特点是,您通常应该尽可能多地进行预处理,因为您的数据通常只读取一次,然后在许多不同的上下文中进行分析。因此,在这种情况下,将completion_time作为一个单独的字段添加并在将文档提交到索引时进行计算将是最好的做法。

这使得在字段上进行任何进一步的分析变得容易得多,然后我们可以使用JSON Facet API每次创建桶,然后计算落入该桶中的条目的平均完成时间。

Solr按嵌套函数排序方面的示例示例中获得:

代码语言:javascript
复制
{
  "query": "*:*",
  "facet": {
    "categories":{
      "type": "terms",
      "field": "TEAM",
      "limit": 3,
      "sort": "avg_completion_time asc",
      "facet": {
        "avg_completion_time": "avg(completion_time)",
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73722999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档