I am writing Elasticsearch aggregations queries to find the total count available:
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}
}
}
}
And I am getting the count properly. How do i write these type of queries in php code?? As i am new to elasticsearch any help would be helpful Thanks in advance
Taking idea from github. The agg (and search) PHP syntax follows the JSON API 1:1. So you can take your aggregation above and just translate it into PHP arrays like so:
$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);
Aggregations are executed in parallel to searches, so just specify your search query and you'll get back a search hits element as well as the aggs element
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With