[ElasticSearch]PHP操作ElasticSearch

官方API:
可以下载官方的PHP ElasticSearch API 阅读文档进行相关操作。
示例代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
static public function initSearchClient() {
    if (null ==  BaseFrontController::$client) {
        $hosts['hosts'] = array(
            "host" => '127.0.0.1',
            "port" => '9200',
            'scheme' => 'http'
        );
        BaseFrontController::$client = \Elasticsearch\ClientBuilder::create()
            ->setSSLVerification(false)
            ->setHosts($hosts)
            ->build();
    }
}

// Elastic search
static public function actionSearch($area, $keyword, $start, $end, $size=100, $agg = null) {
    BaseFrontController::initSearchClient();
    $params['index'] = BaseFrontController::getSearchIndex();
    $params['type'] = 'raw';
    $params['body']["size"] = $size;
    // your aggs
    if (null != $agg) {
        $params['body']["aggs"] = $agg;
    }
    $params['body']["query"]["filtered"]['filter']["and"] = [
        ["term"=>['Your area' => $area]], // your area 
        ["range"=>["Your time" => array("gte"=>$start, "lte"=>$end)]] // your time
    ];

    if ($keyword != '') {
        $params['body']["query"]["filtered"]['query']['bool']['should']['match_phrase'] = array();// your query word
    }

    $response = BaseFrontController::$client->search($params);
    return $response;
}