Elasticsearch è un motore di ricerca full-text molto performante.
Avere un sito web performante sia in termini di velocità che in termini di ricerca è essenziale se si vuole avere un sito di successo.
Per tutti quei siti che ospitano un numero elevato di prodotti o prodotti con molte combinazioni , varianti o semplicemente con molti attributi filtrabili, un motore di ricerca come elasticsearch diventa una scelta quasi obbligatoria. Se ti interessa scoprire come velocizzare Magento 2 puoi leggere qui.
Vedremo una guida applicabile a Magento 2 in cui, tutta la parte riguardante Plesk è replicabile per qualsiasi altro cms.
Magento dalla versione 2.4 introduce elasticsearch come motore di ricerca predefinito abbandonando completamente il classico motore di ricerca DB.
Vediamo quindi come configurare elasticsearch per migliorare la ricerca del nostro sito web. Prendiamo in considerazione come hosting un VPS con pannello plesk.
Cosa fare
Installazione e Configurazione elsticearch con Docker
Su Docker cerchiamo elasticserarch ed installiamo una versione 7+.
Ora bisognerà configurare il container. Impostiamo le seguenti variabili
- Container name : diamo un nome al nostro container
- Memory Limit : In base alle nostre esigenze diamogli un valore, settiamo l’intervallo di porte
- discover.type : diamo il valore single-node
- ES_HEAP_SIZE : Diamo un valore in Gb o Mb. Indica la quantià di ram che può allocare.
- xpack.security-enabled: E’ importante dare true come valore. Non vogliamo che chiunque possa accedere al nostro catalogo.
- ELASTIC_PASSWORD: Inseriamo una password in virtù della dichiarazione precente.
A questo punto possiamo salvare la configurazione e recarci su Magento 2.

Configurazione Magento 2
Dal pannello di amministrazione rechiamoci su Negozi->Configurazione-> Catalogo ->Catalogo ->Ricerca nel catalogo. Configuriamo come segue ( dipende dalla configurazione precedente ):
- Motore di ricerca: Elasticsearch 7.0+
- Elasticsearch Server Hostname : localhost
- Porta server Elasticsearch : 9200
- Prefisso indice elasticsearch: diamo un nome a nostro piacimento
- Abilita Elasticsearch HTTP Auth : si
- Elasticsearch HTTP Username : il valore predefinito è elastic
- Elasticsearch HTTP Password : inseriamo la password inserita nella configurazione del container
E’ giunto il momento di testare la connessione e salvare.

Reindicizzare magento
Come passo finale occorrerà reindicizzare completamente il catalogo.
Da ssh possiamo dare :
/opt/plesk/php/7.4/bin/php bin/magento indexer:reindex