这篇文章将为大家详细讲解有关EKL PHP如何调取_search接口查询、添加购物车统计,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
<?php
error_reporting( E_ALL&~E_NOTICE );
define('ELK_QUERY_RR_QUERY', '{
  "query": {
    "filtered": {
      "query": {
        "query_string": {
          "analyze_wildcard": true,
          "query": "type:phptestkv AND report_type:\"cart.add\""
        }
      },
      "filter": {
        "bool": {
          "must": [
            {
              "range": {
                "@timestamp": {
                "gte": "now-15m"
                }
              }
            }
          ],
          "must_not": []
        }
      }
    }
  },
  "size": 0,
  "aggs": {
    "1": {
          "terms": {
            "field": "success",
            "size": 5,
            "order": {
              "_count": "desc"
            }
          }
        }
    }
  }
}');
define('ELK_QUERY_RR_URL', 'http://localhost:9200/logstash-phptest-*/_search?search_type=count&pretty');
     function curl_post($url, $content, $header=''){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
        curl_setopt($curl, CURLOPT_TIMEOUT, 30);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $tmpInfo = curl_exec($curl);
        if (curl_errno($curl))
        {
            print("[error] CURL ERROR: ".curl_error($curl)."\r\n");
        }
        curl_close($curl);
        return $tmpInfo;
    }
     function Query_Curl(){
        $request_params_rr_query = ELK_QUERY_RR_QUERY;
        $rr_target =curl_post(ELK_QUERY_RR_URL, $request_params_rr_query, 'Authorization:Basic bmVpZ291OjE5dkpDYzdCUUltbw==');
        return get_rr_value($rr_target);
    }
    function get_rr_value($results){
        $results_object = json_decode($results, true);
        return $results_object;
    }
     function query(){
         $result=Query_Curl();
         $doc_count=$result['aggregations']['1']['buckets'][0]['doc_count'];
         $total=$result['hits']['total'];
         $ratio=0;
         if($total>=5){
             if($doc_count && $total){
                 $ratio=round($doc_count/$total, 2);
             }
             if($result['aggregations']['1']['buckets'][0]['key']==1){
                 if($ratio){
                     $ratio=1-($ratio);
                 }
             }
         }
         return $ratio;
    }
$ratio=query();
echo $ratio;
?>
关于“EKL PHP如何调取_search接口查询、添加购物车统计”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。