# Elasticsearch Query and ActiveRecord for Yii 2

This extension provides the Elasticsearch integration for the Yii framework 2.0. It includes basic querying/search support and also implements the `ActiveRecord` pattern that allows you to store active records in Elasticsearch.

For license information check the LICENSE-file.

Documentation is at docs/guide/README.md.

## Requirements ¶

Depending on the version of Elasticsearch you are using you need a different version of this extension.

- For Elasticsearch 1.6.0 to 1.7.6 use extension version 2.0.x
- For Elasticsearch 5.x or above use extension version 2.1.x

## Installation ¶

The preferred way to install this extension is through composer:

    composer require --prefer-dist yiisoft/yii2-elasticsearch:"~2.1.0"

## Configuration ¶

To use this extension, you have to configure the Connection class in your application configuration:

    return [
        //....
        'components' => [
            'elasticsearch' => [
                'class' => 'yii\elasticsearch\Connection',
                'nodes' => [
                    ['http_address' => '127.0.0.1:9200'],
                    // configure more hosts if you have a cluster
                ],
                'dslVersion' => 7, // default is 5
            ],
        ]
    ];

# Class Reference

Class | Description
--- | ---
yii\elasticsearch\ActiveDataProvider | ActiveDataProvider is an enhanced version of yii\data\ActiveDataProvider specific to the Elasticsearch.
yii\elasticsearch\ActiveFixture | ActiveFixture represents a fixture for testing backed up by an ActiveRecord class or an elastic search index.
yii\elasticsearch\ActiveQuery | ActiveQuery represents a yii\elasticsearch\Query associated with an yii\elasticsearch\ActiveRecord class.
yii\elasticsearch\ActiveRecord | ActiveRecord is the base class for classes representing relational data in terms of objects.
yii\elasticsearch\BatchQueryResult | BatchQueryResult represents a batch query from which you can retrieve data in batches.
yii\elasticsearch\BulkCommand | The yii\elasticsearch\BulkCommand class implements the API for accessing the Elasticsearch bulk REST API.
yii\elasticsearch\Command | The Command class implements the API for accessing the Elasticsearch REST API.
yii\elasticsearch\Connection | Elasticsearch Connection is used to connect to an Elasticsearch cluster version 0.20 or higher
yii\elasticsearch\DebugAction | Debug Action is used by yii\elasticsearch\DebugPanel to perform Elasticsearch queries using ajax.
yii\elasticsearch\DebugPanel | Debugger panel that collects and displays Elasticsearch queries performed.
yii\elasticsearch\ElasticsearchTarget | ElasticsearchTarget stores log messages in a Elasticsearch index.
yii\elasticsearch\Exception | Exception represents an exception that is caused by Elasticsearch-related operations.
yii\elasticsearch\Query | Query represents a query to the search API of Elasticsearch.
yii\elasticsearch\QueryBuilder | QueryBuilder builds an Elasticsearch query based on the specification given as a yii\elasticsearch\Query object.