elasticsearch返回所有找到的聚合

时间:2015-03-13 10:50:34

标签: php elasticsearch searchly

我使用来自github.com/searchly/searchly-php-sample的示例应用程序和Searchly服务。

我已经找到了一个简单的地方,我希望搜索结果能够从搜索结果中返回所有聚合(继续为#ag;'),而不仅仅是我指定的聚合。

目前aggs的代码是:

$searchParams['body']['aggs']['resolution']['terms']['field'] = 'resolution';

这会返回分辨率agg,但我无法找到从搜索结果中返回所有可能的aggs的方法。

是否可能或者是否需要我将aggs保存在哪里,然后在我执行实际搜索请求时将其列出?

谢谢!

1 个答案:

答案 0 :(得分:0)

据我所知,没有办法直接执行此操作 - 您必须指定您感兴趣的每个字段。

但是,如果您可以构建索引中所有字段的列表,那么您可以非常轻松地生成所需的聚合。

那么,如何构建该列表?我可以想到可能工作的三种方式

A)在将每个文档索引到ElasticSearch

之前进行一些预处理来构建它

B)使用GET MAPPING api查看动态映射创建的字段(http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html

C)使用Scripted Metric Aggregation并编写脚本,在文档中构建一个已删除的字段列表(http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html