Solr 6 - 字段的 SUM 值以及 GROUP BY

标签 solr facet solr6

我有一个 Solr 核心,其中包含以下 6 个字段的文档 -

FIELDNAME   TYPE    INDEXED   STORED
department  STRING  TRUE      TRUE
group       STRING  TRUE      TRUE
age         INT     TRUE      TRUE
salary      INT     TRUE      TRUE
bonus       INT     TRUE      TRUE

我想要的是以下 -

  1. SUM 来自不同部门的所有员工的薪资
  2. SUM来自不同部门的所有员工的工资奖金
  3. SUM 来自不同部门的所有员工的薪资
  4. SUM 来自不同部门的所有员工的工资奖金 >.

示例数据 -

<doc>
  <str name="department">IT</str>
  <str name="group">INFRASTRUCTURE</str>
  <int name="age">27</int>
  <int name="salary">1000</int>
  <int name="bonus">10</int>
</doc>
<doc>
  <str name="department">IT</str>
  <str name="group">DEVELOPMENT</str>
  <int name="age">30</int>
  <int name="salary">10000</int>
  <int name="bonus">100</int>
</doc>
<doc>
  <str name="department">IT</str>
  <str name="group">DEVOPS</str>
  <int name="age">32</int>
  <int name="salary">2000</int>
  <int name="bonus">150</int>
</doc>
<doc>
  <str name="department">IT</str>
  <str name="group">INFRASTRUCTURE</str>
  <int name="age">35</int>
  <int name="salary">20000</int>
  <int name="bonus">200</int>
</doc>
<doc>
  <str name="department">HR</str>
  <str name="group">PEOPLE</str>
  <int name="age">27</int>
  <int name="salary">900</int>
  <int name="bonus">5</int>
</doc>

异常输出 -

1. For the 1st requirement -
   IT - 33000
   HR - 900
2. For the 2nd requirement -
   IT - 33460
   HR - 905
3. For the 3rd requirement -
   IT -
      INFRASTRUCTURE - 21000
      DEVELOPMENT - 10000
      DEVOPS - 2000
   HR -
      PEOPLE - 900
4. For the 4th requirement -
   IT -
      INFRASTRUCTURE - 21210
      DEVELOPMENT - 10100
      DEVOPS - 2150
   HR -
      PEOPLE - 905

我尝试按照指示 here 来实现它但是,我无法将 PIVOT FACETSUM 函数合并。

最佳答案

这应该可以工作,未经测试,可能有一些拼写错误等......

curl http://localhost:8983/solr/col/query -d '
  q=*:*&
  json.facet={
   departments:{
    type : terms,
    field : department,
    facet:{
      sumsalary : "sum(salary)",
      sumbonus : "sum(bonus)",
      groups:{
        type : terms,
        field : group,
        facet:{
           sumsalaryg : "sum(salary)",
           sumbonusg : "sum(bonus)"
       }
    }
  }
}'

关于Solr 6 - 字段的 SUM 值以及 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43676814/

相关文章:

tomcat - Sorl 6 有 jetty 问题

python - 在 Lucene/Solr、Whoosh、Sphinx、Xapian 中,哪个与 Python 集成得最好?

sorting - SOLR 按相关性排序

solr - 删除 solr 搜索中的标点符号

curl - Solr 通过 CURL 查询 - [globbing] 列中的错误范围

java - 如何在 SolrJ 中插入具有多个子 Bean 的 Bean 对象

java - 无法使用 post 工具或 URL 删除 solr 文档(使用查询)

elasticsearch - 在elasticsearch分面搜索中保留大小写

solr - 多选 Solr 过滤和分面

filter - 是否可以在ElasticSearch中创建预定义范围过滤器构面?