弹性搜索聚合没有 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 子聚合
可能聚合函数 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 子聚合