Class yii\elasticsearch\Connection
Inheritance | yii\elasticsearch\Connection » yii\base\Component |
---|---|
Available since version | 2.0 |
Elasticsearch Connection is used to connect to an elasticsearch cluster version 0.20 or higher
Public 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 |
$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 |
$nodes | array | The elasticsearch cluster nodes to connect to. | yii\elasticsearch\Connection |
Public Methods
Protected 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
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
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.
Whether to autodetect available cluster nodes on open()
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.
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.
Default protocol to connect to nodes
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)
Method Details
Closes the connection when this component is being serialized.
public array __sleep ( ) |
Closes the currently active DB connection.
It does nothing if the connection is already closed.
public void close ( ) |
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 |
---|
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 |
---|
Try to decode error information if it is valid json, return it if not.
protected mixed decodeErrorBody ( $body ) | ||
$body |
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 |
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 |
public void getClusterState ( ) |
Returns the name of the DB driver for the current \yii\elasticsearch\dsn.
public string getDriverName ( ) | ||
return | string | Name of the DB driver |
---|
Returns a value indicating whether the DB connection is established.
public boolean getIsActive ( ) | ||
return | boolean | Whether the DB connection is established |
---|
public void getNodeInfo ( ) |
Creates new query builder instance
public yii\elasticsearch\QueryBuilder getQueryBuilder ( ) |
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 |
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 |
public void init ( ) |
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 ( ) |
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 |
---|
Populates $nodes with the result of a cluster nodes request.
protected void populateNodes ( ) | ||
throws | yii\elasticsearch\Exception | if no active node(s) found |
---|
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 |
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 |
Select active node randomly
protected void selectActiveNode ( ) |