弹性搜索聚合没有 return 数据

elastic search aggregate doesn't return data

可能聚合函数 returns 数据而不是计数?

现在我得到:

array (size=3)
'doc_count_error_upper_bound' => int 0
'sum_other_doc_count' => int 0
'buckets' => 
array (size=2)
  0 => 
    array (size=2)
      'key' => int 15
      'doc_count' => int 2
  1 => 
    array (size=2)
      'key' => int 14
      'doc_count' => int 1

但这没用,因为我需要代表这个 doc_count of 2 和 doc_count of 1

的实际数据

我正在使用 elastica.io

您可以进行如下查询并使用 top_hits 聚合来获取文档来源。

{
    "aggs": {
        "terms_aggregation": {
            "terms": {
                "field": "anyfield",
                "size": 10
            },
            "aggs": {
                "gruped_result": {
                    "top_hits": {
                        "size": 100
                    }
                }
            }
        }
    }
}

我想你的 php 客户端可能有类似的东西

$termsAgg = new Terms("anyfields");
$termsAgg->setField("anyfield");

$statsAgg = new TopHits();
$statsAgg->setSize(100);

$termsAgg->addAggregation($statsAgg);
$index = $elasticaClient->getIndex('someindex');
$buckets = $index->search($query)->getAggregation("anyfields");

我在官方页面上提到了 this example 子聚合