mirocow / yii2-elasticsearch
Yii2 Elasticsearch client based on official Elasticsearch PHP library
Installs: 18 377
Dependents: 2
Suggesters: 0
Security: 0
Stars: 13
Watchers: 8
Forks: 7
Type:yii2-extension
Requires
- php: >=5.4.0
- elasticsearch/elasticsearch: ^5.0
- yiisoft/yii2: >=2.0
README
Docs are available in english and russian. Based on https://github.com/elastic/elasticsearch
Honey modules
Install
$ composer require --prefer-dist mirocow/yii2-elasticsearch
Elasticsearch 5.6.x
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - $ sudo apt-get install apt-transport-https $ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list $ sudo apt-get update && sudo apt-get install elasticsearch $ composer require --prefer-dist mirocow/yii2-elasticsearch
Configure
- Create a class that implements the
common\modules\elasticsearch\contracts\Index
interface. - Add it to the module configuration in
common/config/main.php
- Start indexing
return [ 'modules' => [ // elasticsearch common\modules\elasticsearch\Module::MODULE_NAME => [ 'class' => common\modules\elasticsearch\Module::class, 'indexes' => [ common\repositories\indexes\ProductsSearchIndex::class ] ], ], 'bootstrap' => [ mirocow\elasticsearch\Bootstrap::class, ] ];
Create index
Create empty index
$ php yii elasticsearch/index/create index_name
Fill index with all documents
$ php yii elasticsearch/index/populate index_name
Destroy an index and all its data
$ php yii elasticsearch/index/destroy index_name
Remove all existing indexes, re-create all indexes and re-index all documents for all indexes
$ php yii elasticsearch/index/rebuild
Debug
$ export PHP_IDE_CONFIG="serverName=www.site.loc" && export XDEBUG_CONFIG="remote_host=192.168.1.6 idekey=xdebug" && php7.0 ./yii elasticsearch/index/create products_search
Query
<?php /** @var QueryBuilder $query */ $query = new QueryBuilder; $query = $query ->add(QueryHelper::bool($filter, $must, $should, $must_not)) ->aggregations($aggregations) ->withSource('attributes');