小编Pet*_*nus的帖子

ElasticSearch多级父子聚合

我有3个级别的父/子结构.让我们说:

公司 - >员工 - >可用性

由于此处经常更新可用性(以及员工),因此我选择使用父/子结构来嵌套.并且搜索功能正常(所有文档都在正确的分片中).

现在我想对这些结果进行排序.通过公司(第1级)的元数据对它们进行排序很容易.但我需要按第3级(可用性)排序.

我想要按以下列表排序的公司列表:

  • 给定ASC的位置距离
  • 评级DESC
  • 最快的可用性ASC

例如:

A公司距离5英里,评级为4,最快的一名员工在20小时内可用.B公司距离5英里,也有4级,但最快的一名员工可在5小时内完成.

因此排序结果需要为B,A.

我想对每个数据添加特别的权重,所以我开始编写聚合,以后可以在我的custom_score脚本中使用.

用于创建索引,导入数据和搜索的全部要点

现在,我已经设法编写了一个实际返回结果的查询,但可用性聚合桶为空.但是,我也得到了过于结构化的结果,我想将它们弄平.

目前我回来了:

公司IDS - >员工IDS - >首次可用性

我希望聚合如下:

公司IDS - >首次上市

通过这种方式,我可以使用我的custom_score脚本来计算得分并对其进行正确排序.

更简化的问题:
如何对多级(大)孩子进行排序/聚合,并可能使结果变平.

sorting aggregation elasticsearch

79
推荐指数
1
解决办法
3120
查看次数

标签 统计

aggregation ×1

elasticsearch ×1

sorting ×1