繁体   English   中英

php 中的 Elasticsearch 聚合

[英]Elasticsearch aggregations in php

我正在编写 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获取想法。 agg(和搜索)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 元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM