Special Aspects for Elasticsearch
Basically elasticsearch worker works as described in the optimized architecture. Currently elasticsearch 5 (deprecated, will be removed with Pimcore 10), 6 (deprecated, will be removed with Pimcore 10) and 7 are supported.
To work properly Pimcore requires the Elasticsearch bindings, install them with:
composer require elasticsearch/elasticsearch.
Elasticsearch provides a couple of additional configuration options for the index to utilize elasticsearch features. See Configuration Details for more information.
It is possible that elasticsearch cannot update the mapping, e.g. if data types of attributes change on the fly.
For this case, a reindex is necessary. If it is necessary, a native ES reindex is executed automatically during
bin/console ecommerce:indexservice:bootstrap --create-or-update-index-structure.
While reindex is executed, no updates are written to the ES index. The changes remain in store table and are transferred
to index during next execution of
bin/console ecommerce:indexservice:process-update-queue after reindex is finished.
All queries that take place during reindex go to the old index. As soon the reindex is finished, the current index is switched
to the newly created index and the old index is deleted.
As a result, during reindex the results delivered by Product Lists can contain old data.
To manually start a reindex, following command can be used:
bin/console ecommerce:indexservice:elasticsearch-sync reindex.
Indexing of Classification Store Attributes
With elasticsearch it is possible to index all attributes of Classification Store data without defining an attribute for each single classification store key.
For details see Filter Classification Store in Filter Service documentation.
Pimcore provides an out-of-the box integration for synonyms in elasticsearch. See Synonyms for details.