2017-03-10 20 views
0

集計関数はカウントではなくデータを返す可能性がありますか?弾性検索集合体はデータを返しません

今私が手:

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 

しかし、これは私がelastica.io

答えて

0
を使用してい役に立たない、私は2のこのdoc_countを表し、実際のデータを必要とする原因と1

のdoc_countです

次のようなクエリを作成し、top_hits集計を使用してドキュメントソースを取得できます。公式ページの

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

私はサブ集計用this exampleを呼び多分あなたの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"); 

でこのような何かを考える

+0

あなたはこれを説明することができ、より私は、このJSON形式を使用していませんでしたクエリを作成するとき私はこれをhttp://elastica.io/example/aggregations/terms.htmlのようにしました。あなたのソリューションを使用するためにこのコードをリンクで変更しましたか? –

+0

あなたはあなたのPHPクエリを共有できますか?、私はPHPクライアントを使ったことはありません。 – user3775217

+0

これはいくつかの変更を加えたものです。ありがとうございました。しかし、なぜ100という制限がありますか?無制限の結果があることはありますか?私はあなたがそれを難し​​くコード化して999999を書くことができることを知っています。 –

関連する問題