当我搜索elasticsearch聚合时,我只找到了multi_terms
,它用来按多个字段分组。但我正在寻找如何按一个具有多个值的字段分组。
我有一个字段product
,其值可以是fruit
、electronic
、veg
、furniture
等。我想按值为fruit
或veg
的所有文档进行分组。我该如何实现?
我正在寻找一种不更新索引Map的方法,由于product
的值经常改变,我需要在运行时支持组字段的任何组合。
当我搜索elasticsearch聚合时,我只找到了multi_terms
,它用来按多个字段分组。但我正在寻找如何按一个具有多个值的字段分组。
我有一个字段product
,其值可以是fruit
、electronic
、veg
、furniture
等。我想按值为fruit
或veg
的所有文档进行分组。我该如何实现?
我正在寻找一种不更新索引Map的方法,由于product
的值经常改变,我需要在运行时支持组字段的任何组合。
1条答案
按热度按时间rggaifut1#
可以将脚本与术语聚合沿着使用。
我已经使用了runtime_mapping,这是一个脚本,它将为产品蔬菜和水果发出单个值,您可以使用该值对数据进行分组。
您也可以为runtime fields建立索引以改善效能。
结果
更新
运行时字段从7.11版开始可用
您还可以在聚合方面使用脚本来实现相同
脚本和运行时Map速度慢,因为所有操作都是在搜索时完成的。您可以将运行时字段添加到索引中,而无需重新创建索引。它将给予比脚本更好的性能