我在这里看到过类似的问题,但没有一个人可能会对手头的问题有所了解。
这是我尝试运行的代码:
require '../vendor/autoload.php';
$client = Elasticsearch\ClientBuilder::create()->build();
$params = [
'index' => 'search_log',
'type' => 'search_log',
'body' => [
'size' => 0,
'aggs' => [
'popular_terms' => [
'terms' => [
'field' => 'filteredSearch'
]
]
]
]
];
// Execute query
$response = $client->search($params);
// Decode response
$myData = json_decode($response);
var_dump($myData);
我得到的输出:
NULL
我将问题缩小到解码部分。如果我执行$ response的print_r,这就是我得到的(实际上所有这些都在一行中,我已经手动打印它,因此它更容易阅读):
Array (
[took] => 245
[timed_out] =>
[_shards] => Array (
[total] => 5
[successful] => 5
[failed] => 0
)
[hits] => Array (
[total] => 5124004
[max_score] => 0
[hits] => Array ( )
)
[aggregations] => Array (
[popular_terms] => Array (
[doc_count_error_upper_bound] => 37750
[sum_other_doc_count] => 11388032
[buckets] => Array (
[0] => Array (
[key] => term1
[doc_count] => 385107
)
[1] => Array (
[key] => term2
[doc_count] => 169381
)
[2] => Array (
[key] => term3
[doc_count] => 155258
)
[3] => Array (
[key] => term4
[doc_count] => 150382
)
[4] => Array (
[key] => term5
[doc_count] => 124759
)
[5] => Array (
[key] => term6
[doc_count] => 102589
)
[6] => Array (
[key] => term7
[doc_count] => 98791
)
[7] => Array (
[key] => term8
[doc_count] => 98772
)
[8] => Array (
[key] => term9
[doc_count] => 98091
)
[9] => Array (
[key] => term10
[doc_count] => 94559
)
)
)
)
)
我想要的结果是只打印term1,term2等,而不会出现Elasticsearch响应中的其他内容。