# Class yii\elasticsearch\Connection

Inheritance | yii\elasticsearch\Connection » yii\base\Component » yii\base\BaseObject
Implements | yii\base\Configurable
Available since version | 2.0
Source Code | https://github.com/yiisoft/yii2-elasticsearch/blob/master/Connection.php

Elasticsearch Connection is used to connect to an Elasticsearch cluster version 0.20 or higher

## Public Properties

Hide inherited properties

Property | Type | Description | Defined By
--- | --- | --- | ---
$activeNode | string | The active node. | yii\elasticsearch\Connection
$auth | array | Authentication data used to connect to the Elasticsearch node. | yii\elasticsearch\Connection
$autodetectCluster | boolean | Whether to autodetect available cluster nodes on open() | yii\elasticsearch\Connection
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. This property is read-only. | yii\base\Component
$clusterState |  |  | yii\elasticsearch\Connection
$connectionTimeout | float | Timeout to use for connecting to an Elasticsearch node. | yii\elasticsearch\Connection
$dataTimeout | float | Timeout to use when reading the response from an Elasticsearch node. | yii\elasticsearch\Connection
$defaultProtocol | string | Default protocol to connect to nodes | yii\elasticsearch\Connection
$driverName | string | Name of the DB driver. This property is read-only. | yii\elasticsearch\Connection
$dslVersion | integer | Version of the domain-specific language to use with the server. | yii\elasticsearch\Connection
$isActive | boolean | Whether the DB connection is established. This property is read-only. | yii\elasticsearch\Connection
$nodeInfo |  |  | yii\elasticsearch\Connection
$nodes | array | The Elasticsearch cluster nodes to connect to. | yii\elasticsearch\Connection
$queryBuilder | yii\elasticsearch\QueryBuilder | This property is read-only. | yii\elasticsearch\Connection

## Public Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
__call() | Calls the named method which is not a class method. | yii\base\Component
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component
__construct() | Constructor. | yii\base\BaseObject
__get() | Returns the value of a component property. | yii\base\Component
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component
__set() | Sets the value of a component property. | yii\base\Component
__sleep() | Closes the connection when this component is being serialized. | yii\elasticsearch\Connection
__unset() | Sets a component property to be null. | yii\base\Component
attachBehavior() | Attaches a behavior to this component. | yii\base\Component
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component
className() | Returns the fully qualified name of this class. | yii\base\BaseObject
close() | Closes the currently active DB connection. | yii\elasticsearch\Connection
createBulkCommand() | Creates a bulk command for execution. | yii\elasticsearch\Connection
createCommand() | Creates a command for execution. | yii\elasticsearch\Connection
delete() | Performs DELETE HTTP request | yii\elasticsearch\Connection
detachBehavior() | Detaches a behavior from the component. | yii\base\Component
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component
get() | Performs GET HTTP request | yii\elasticsearch\Connection
getBehavior() | Returns the named behavior object. | yii\base\Component
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component
getClusterState() |  | yii\elasticsearch\Connection
getDriverName() | Returns the name of the DB driver for the current dsn. | yii\elasticsearch\Connection
getIsActive() | Returns a value indicating whether the DB connection is established. | yii\elasticsearch\Connection
getNodeInfo() |  | yii\elasticsearch\Connection
getQueryBuilder() | Creates new query builder instance | yii\elasticsearch\Connection
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component
head() | Performs HEAD HTTP request | yii\elasticsearch\Connection
init() |  | yii\elasticsearch\Connection
off() | Detaches an existing event handler from this component. | yii\base\Component
on() | Attaches an event handler to an event. | yii\base\Component
open() | Establishes a DB connection. | yii\elasticsearch\Connection
post() | Performs POST HTTP request | yii\elasticsearch\Connection
put() | Performs PUT HTTP request | yii\elasticsearch\Connection
trigger() | Triggers an event. | yii\base\Component

## Protected Methods

Hide inherited methods

Method | Description | Defined By
--- | --- | ---
decodeErrorBody() | Try to decode error information if it is valid json, return it if not. | yii\elasticsearch\Connection
httpRequest() | Performs HTTP request | yii\elasticsearch\Connection
initConnection() | Initializes the DB connection. | yii\elasticsearch\Connection
populateNodes() | Populates $nodes with the result of a cluster nodes request. | yii\elasticsearch\Connection
selectActiveNode() | Select active node randomly | yii\elasticsearch\Connection

## Events

Hide inherited events

Event | Type | Description | Defined By
--- | --- | --- | ---
EVENT_AFTER_OPEN | \yii\elasticsearch\Event | An event that is triggered after a DB connection is established | yii\elasticsearch\Connection

## Property Details

$activeNode public property

The active node. Key of one of the $nodes. Will be randomly selected on open().

public string $activeNode = null
$auth public property

Authentication data used to connect to the Elasticsearch node.

Array elements:

- `username`: the username for authentication.
- `password`: the password for authentication.

Array either MUST contain both username and password on not contain any authentication credentials.

See also http://www.elasticsearch.org/guide/en/elasticsearch/client/php-api/current/_configuration.html#_example_configuring_http_basic_auth.

public array $auth = []
$autodetectCluster public property

Whether to autodetect available cluster nodes on open()

public boolean $autodetectCluster = true
$clusterState public read-only property
public void getClusterState ( )
$connectionTimeout public property

Timeout to use for connecting to an Elasticsearch node. This value will be used to configure the curl `CURLOPT_CONNECTTIMEOUT` option. If not set, no explicit timeout will be set for curl.

public float $connectionTimeout = null
$dataTimeout public property

Timeout to use when reading the response from an Elasticsearch node. This value will be used to configure the curl `CURLOPT_TIMEOUT` option. If not set, no explicit timeout will be set for curl.

public float $dataTimeout = null
$defaultProtocol public property (available since version 2.0.5)

Default protocol to connect to nodes

public string $defaultProtocol = 'http'
$driverName public property

Name of the DB driver. This property is read-only.

public string $driverName = null
$dslVersion public property

Version of the domain-specific language to use with the server. This must be set to the major version of the Elasticsearch server in use, e.g. `5` for Elasticsearch 5.x.x, `6` for Elasticsearch 6.x.x, and `7` for Elasticsearch 7.x.x.

public integer $dslVersion = 5
$isActive public property

Whether the DB connection is established. This property is read-only.

public boolean $isActive = null
$nodeInfo public read-only property
public void getNodeInfo ( )
$nodes public property

The Elasticsearch cluster nodes to connect to.

This is populated with the result of a cluster nodes request when $autodetectCluster is true.

Additional special options:

- `auth`: overrides $auth property. For example:

    [
     'http_address' => 'inet[/127.0.0.1:9200]',
     'auth' => ['username' => 'yiiuser', 'password' => 'yiipw'], // Overrides the `auth` property of the class with specific login and password
     //'auth' => ['username' => 'yiiuser', 'password' => 'yiipw'], // Disabled auth regardless of `auth` property of the class
    ]

- `protocol`: explicitly sets the protocol for the current node (useful when manually defining a HTTPS cluster)

See also https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-info.html#cluster-nodes-info.

public array $nodes = [['http_address' => 'inet[/127.0.0.1:9200]']]
$queryBuilder public property

This property is read-only.

public yii\elasticsearch\QueryBuilder $queryBuilder = null

## Method Details

__sleep() public method

Closes the connection when this component is being serialized.

public array __sleep ( )

close() public method

Closes the currently active DB connection.

It does nothing if the connection is already closed.

public void close ( )

createBulkCommand() public method (available since version 2.0.5)

Creates a bulk command for execution.

public yii\elasticsearch\BulkCommand createBulkCommand ( $config = [] )
$config | array | The configuration for the yii\elasticsearch\BulkCommand class
return | yii\elasticsearch\BulkCommand | The DB command

createCommand() public method

Creates a command for execution.

public yii\elasticsearch\Command createCommand ( $config = [] )
$config | array | The configuration for the Command class
return | yii\elasticsearch\Command | The DB command

decodeErrorBody() protected method

Try to decode error information if it is valid json, return it if not.

protected mixed decodeErrorBody ( $body )
$body |  |

delete() public method

Performs DELETE HTTP request

public mixed delete ( $url, $options = [], $body = null, $raw = false )
$url | string|array | URL
$options | array | URL options
$body | string | Request body
$raw | boolean | If response body contains JSON and should be decoded
return | mixed | Response
throws | yii\elasticsearch\Exception |
throws | yii\base\InvalidConfigException |

get() public method

Performs GET HTTP request

public mixed get ( $url, $options = [], $body = null, $raw = false )
$url | string|array | URL
$options | array | URL options
$body | string | Request body
$raw | boolean | If response body contains JSON and should be decoded
return | mixed | Response
throws | yii\elasticsearch\Exception |
throws | yii\base\InvalidConfigException |

getClusterState() public method

public void getClusterState ( )

getDriverName() public method

Returns the name of the DB driver for the current dsn.

public string getDriverName ( )
return | string | Name of the DB driver

getIsActive() public method

Returns a value indicating whether the DB connection is established.

public boolean getIsActive ( )
return | boolean | Whether the DB connection is established

getNodeInfo() public method

public void getNodeInfo ( )

getQueryBuilder() public method

Creates new query builder instance

public yii\elasticsearch\QueryBuilder getQueryBuilder ( )

head() public method

Performs HEAD HTTP request

public mixed head ( $url, $options = [], $body = null )
$url | string|array | URL
$options | array | URL options
$body | string | Request body
return | mixed | Response
throws | yii\elasticsearch\Exception |
throws | yii\base\InvalidConfigException |

httpRequest() protected method

Performs HTTP request

protected mixed httpRequest ( $method, $url, $requestBody = null, $raw = false )
$method | string | Method name
$url | string | URL
$requestBody | string | Request body
$raw | boolean | If response body contains JSON and should be decoded
return | mixed | If request failed
throws | yii\elasticsearch\Exception | if request failed
throws | yii\base\InvalidConfigException |

init() public method

public void init ( )

initConnection() protected method

Initializes the DB connection.

This method is invoked right after the DB connection is established. The default implementation triggers an EVENT_AFTER_OPEN event.

protected void initConnection ( )

open() public method

Establishes a DB connection.

It does nothing if a DB connection has already been established.

public void open ( )
throws | yii\elasticsearch\Exception | if connection fails

populateNodes() protected method (available since version 2.0.4)

Populates $nodes with the result of a cluster nodes request.

protected void populateNodes ( )
throws | yii\elasticsearch\Exception | if no active node(s) found

post() public method

Performs POST HTTP request

public mixed post ( $url, $options = [], $body = null, $raw = false )
$url | string|array | URL
$options | array | URL options
$body | string | Request body
$raw | boolean | If response body contains JSON and should be decoded
return | mixed | Response
throws | yii\elasticsearch\Exception |
throws | yii\base\InvalidConfigException |

put() public method

Performs PUT HTTP request

public mixed put ( $url, $options = [], $body = null, $raw = false )
$url | string|array | URL
$options | array | URL options
$body | string | Request body
$raw | boolean | If response body contains JSON and should be decoded
return | mixed | Response
throws | yii\elasticsearch\Exception |
throws | yii\base\InvalidConfigException |

selectActiveNode() protected method

Select active node randomly

protected void selectActiveNode ( )

## Event Details

EVENT_AFTER_OPEN event of type \yii\elasticsearch\Event

An event that is triggered after a DB connection is established