Headoo/ElasticSearchBundle

View on GitHub
Helper/ElasticSearchHelper.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Headoo\ElasticSearchBundle\Helper;

use Elastica\Client;

class ElasticSearchHelper
{
    private $elasticaConfig;

    /**
     * ElasticSearchHelper constructor.
     * @param $elasticaConfig
     */
    public function __construct($elasticaConfig)
    {
        $this->elasticaConfig = $elasticaConfig;
    }

    /**
     * @param string $connectionName
     * @return \Elastica\Client
     */
    public function getClient($connectionName)
    {
        $elasticaClient = new Client([
            'host' => $this->elasticaConfig[$connectionName]['host'],
            'port' => $this->elasticaConfig[$connectionName]['port'],
            'timeout' => $this->elasticaConfig[$connectionName]['timeout'],
            'connectTimeout' => $this->elasticaConfig[$connectionName]['connectTimeout']
        ]);

        return $elasticaClient;
    }

    /**
     * @param array $servers
     * @return \Elastica\Client
     */
    static public function getCluster(array $servers)
    {
        $cluster = new Client([
            'servers' => [$servers]
        ]);

        return $cluster;
    }

    /**
     * @param Client $elasticaClient
     * @return bool
     */
    static public function isConnected(\Elastica\Client $elasticaClient)
    {
        $status = $elasticaClient->getStatus();
        $status->refresh();

        return true;
    }
}