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.

Latest Stable Version Total Downloads Build Status


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


The preferred way to install this extension is through composer:

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


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' => ''],
                // 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.