Elasticsearch client for Yii2 framework based on official Elasticsearch PHP library ¶
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
`
bash
$ php yii elasticsearch/index/create index_name
`
Fill index with all documents
`
bash
$ php yii elasticsearch/index/populate index_name
`
Destroy an index and all its data
`
bash
$ php yii elasticsearch/index/destroy index_name
`
Remove all existing indexes, re-create all indexes and re-index all documents for all indexes
`
bash
$ 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');
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.