Download the PHP package filipgolonka/elasticsearch-reindex-bundle without Composer
On this page you can find all versions of the php package filipgolonka/elasticsearch-reindex-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download filipgolonka/elasticsearch-reindex-bundle
More information about filipgolonka/elasticsearch-reindex-bundle
Files in filipgolonka/elasticsearch-reindex-bundle
Package elasticsearch-reindex-bundle
Short Description Elasticsearch reindex bundle
License BSD-3-Clause
Homepage https://github.com/filipgolonka/elasticsearch-reindex-bundle
Informations about the package elasticsearch-reindex-bundle
Elasticsearch reindex bundle
Allows to reindex data in zero-downtime mode.
How is it working?
See https://www.elastic.co/blog/changing-mapping-with-zero-downtime
Long story short:
- create new index
- fill in with data
- point an alias to new index
- remove old index
Your application has to use alias name, not index name directly.
Requirements
- elasticsearch/elasticsearch >=2.0, <5.0
- symfony/config
- PHP >7.0
Installation
composer require filipgolonka/elasticsearch-reindex-bundle
-
add following lines to
app/AppKernel.php
- add config options to
app/config/config.yml
where:
alias_name
- alias used by your application
elasticsearch_client
- DI container id, which points to \Elasticsearch\Client
object
index_name_template
- template used for creating new index. It has to be sprintf pattern with one placement (in the other words - contains one and only one %s
)
index_type
- document types used in your application
mapping
- Elasticsearch mapping for newly created index
reindex_command_name
- DI container id, which points to \Symfony\Component\Console\Command\Command
object. This command has to accept one and only one argument: index_name
.
settings
- Elasticsearch settings for newly created index
Elasticsearch mapping and settings example
Development
Add your functionality, but before submitting Pull Request - make sure, that you didn't break the quality of code.
First - run code static analyses tools:
Second - run tests:
Before submitting Pull Request, make sure that your code is covered with PhpSpec and Behat tests.
How to run Behat locally?
Behat tests if the bundle logic works properly with connection to Elasticsearch, so Elasticsearch url is needed to run tests. How to do it?
All versions of elasticsearch-reindex-bundle with dependencies
elasticsearch/elasticsearch Version ^2.0, <5.0
symfony/console Version ~2.8|~3.0
symfony/config Version ~2.8|~3.0
symfony/framework-bundle Version ~2.8|~3.0
symfony/http-kernel Version ~2.8|~3.0
symfony/expression-language Version ~2.8|~3.0