我使用的示例应用程序来自github.com/ Searchly /searchly-php-sample和Searchly服务。
我来了一个简单的地方,我希望搜索结果返回所有的聚合(继续为'aggs'),从搜索结果,而不仅仅是我指定的。
目前,aggs的代码是:
$searchParams['body']['aggs']['resolution']['terms']['field'] = 'resolution';这将返回解析度agg,但我无法找到从搜索结果中返回所有可能的aggs的方法。
它是可能的,还是它需要我保存一些地方,然后只是列出他们,当我做实际的搜索请求?
谢谢!
发布于 2015-03-13 13:08:18
据我所知,没有办法直接这样做-您必须指定您感兴趣的每个字段。
但是,如果您可以构建索引中所有字段的列表,那么您可以相当容易地生成所需的聚合。
那么,如何建立这个名单呢?我可以想出三种可行的方法
( A)在将每个文档索引到ElasticSearch之前,先做一些预处理来构建它。
( B)使用GET映射api查看动态映射(http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-mapping.html)创建了哪些字段
( C)使用脚本化的度量聚合,并编写脚本来构建文档(http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-scripted-metric-aggregation.html)中字段的去欺骗列表。
https://stackoverflow.com/questions/29030343
复制相似问题