如何汇总几个替代术语?

时间:2018-07-04 08:31:44

标签: elasticsearch

我有一些文档,这些文档可能要定义几个定义良好的属性:

owner

字段select * from file where file_status = 1 order by file_date DESC limit 2,6 { name: "john", age: "51" }, { name: "mary", years_since_born: "34" }, { name: "mike", age: "34" }, 含义相同,但名称不同。

我想按ageyears_since_born汇总文档。有可能吗?

我尝试将age中的bool condition推入,但是它显然只接受字符串。

1 个答案:

答案 0 :(得分:1)

您可以使用script in your terms aggregation来执行此操作,如下所示:

POST index/_search
{
  "size": 0,
  "aggs": {
    "ages": {
      "terms": {
        "script": "params._source.age != null ? params._source.age : params._source.years_since_born"
      }
    }
  }
}

注意:但是,根据文档数量的不同,性能可能会变差。如果所有文档都使用相同的字段会更好。