微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php中的Elasticsearch聚合

我正在编写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代码中编写这些类型的查询
由于我是弹性搜索的新手,任何帮助都会有所帮助
提前致谢

解决方法:

从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元素

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐