mirocow/yii2-elasticsearch

Yii2 Elasticsearch client based on official Elasticsearch PHP library

Installs: 36

Dependents: 2

Suggesters: 0

Stars: 8

Watchers: 5

Forks: 4

Type:yii2-extension

1.0.12 2018-11-15 22:45 UTC

README

www.elasticsearch.com

Latest Stable Version Latest Unstable Version Total Downloads License Join the chat at https://gitter.im/Mirocow/yii2-elasticsearch FOSSA Status Maintainability

Docs are available in english and russian. Based on https://github.com/elastic/elasticsearch

Honey modules

Install

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');

License

FOSSA Status

I use JetBrains products to develop yii2-elasticsearch !

www.jetbrains.com