不同文档类型的聚合

时间:2017-02-21 13:46:54

标签: elasticsearch elasticsearch-aggregation

我试图在这里解决问题,我甚至不确定如何完成我想要的工作。 基本上我需要在类型公司上查询我的索引。此类型具有名为Company_Name的字段。现在我有另一种类型,即Employee,它也有一个名为Company_Name的字段,基本上#34;链接他"致公司。

我需要做的是在我的公司查询中进行汇总,从而获得公司内部员工的数量(每个结果)。

有什么办法吗?

编辑:

映射:

"company" : {
  "properties" : {
    "company_name" : {
      "type" : "text"
     }
  }
},
"employee" : {
  "properties" : {
    "employee_name" : {
      "type" : "text"
    },
    "company_name" : {
      "type" : "text"
    }
  }
}

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解你想要的但是你提到了:

  

现在我有另一种类型,即Employee,它有一个名为Company_Name

的字段

然后你说你想要的,和公司在一起的员工数量。

对我来说,看起来你需要的只是公司员工doc类型的聚合。

如果您确实需要查询两个索引,那么您可以将多索引搜索和聚合应用于多索引搜索的结果。

这或与此接近的事情应该有效:

http://localhost:9200/$index/employee/_search?search_type=count

{
  "aggs" : {
   "company" : {
    "terms" : {
      "field" : "company_name"
      }
    }
  }
}

有人认为您应该注意的是,如果您的字段company_name被分析,它将被标记化,您无法对其进行聚合。然后,您应该添加一个带有公司名称的原始字段,以用于汇总。

一些有用的参考资料:

https://www.elastic.co/guide/en/elasticsearch/guide/current/relations.html

https://www.elastic.co/guide/en/elasticsearch/guide/current/_closing_thoughts.html