gpt4 book ai didi

php - PHP 中的 Elasticsearch 聚合

转载 作者:可可西里 更新时间:2023-11-01 00:43:00 26 4
gpt4 key购买 nike

我正在编写 Elasticsearch 聚合查询来查找可用的总数:

  GET zap/_search
{
"aggregations": {
"Brand_Name_Count": {
"terms": {"field": "brand_name", "size" : 0}
},
"Stock_Status_Count" : {
"terms" : { "field" : "stock_status", "size" : 50}
},
"Category_Id_Count" : {
"terms" : { "field" : "category_id", "size" : 50}
}
}
}

而且我得到了正确的计数。我如何在 php 代码中编写这些类型的查询?由于我是 elasticsearch 的新手,任何帮助都会有所帮助提前致谢

最佳答案

从github上获取想法。聚合(和搜索)PHP 语法遵循 JSON API 1:1。因此,您可以采用上面的聚合并将其转换为 PHP 数组,如下所示:

$myQuery = [];  // Your query goes here

$params = [
'index' => 'zap',
'body' => [
'aggs' => [
'Brand_Name_Count' => [
'terms' => [
'field' => 'brand_name',
'size' => 0
]
],
'Stock_Status_Count' => [
'terms' => [
'field' => 'stock_status',
'size' => 50
]
],
'Category_Id_Count' => [
'terms' => [
'field' => 'category_id',
'size' => 50
]
]
],
'query' => $myQuery
]
];

$results = $client->search($params);

聚合与搜索并行执行,因此只需指定您的搜索查询,您将返回一个搜索命中元素以及 aggs 元素

关于php - PHP 中的 Elasticsearch 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29030757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com