我使用来自github.com/searchly/searchly-php-sample的示例应用程序和Searchly服务。
我已经找到了一个简单的地方,我希望搜索结果能够从搜索结果中返回所有聚合(继续为#ag;'),而不仅仅是我指定的聚合。
目前aggs的代码是:
$searchParams['body']['aggs']['resolution']['terms']['field'] = 'resolution';
这会返回分辨率agg,但我无法找到从搜索结果中返回所有可能的aggs的方法。
是否可能或者是否需要我将aggs保存在哪里,然后在我执行实际搜索请求时将其列出?
谢谢!
答案 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)