Configura servizio Elasticsearch
Creato per:
- Amministratore
- Sviluppatore
Elasticsearch è un prodotto open-source che consente di estrarre dati da qualsiasi origine, qualsiasi formato, nonché di eseguire ricerche e visualizzarli in tempo reale.
Per Adobe Commerce versione 2.4.4 e successive, vedere Configurazione del servizio OpenSearch.
- Elasticsearch esegue ricerche rapide e avanzate sui prodotti nel catalogo dei prodotti
- Gli analizzatori Elasticsearch supportano più lingue
- Supporta parole non significative e sinonimi
- L’indicizzazione non influisce sui clienti fino al completamento dell’operazione di reindicizzazione
Utilizzare le istruzioni seguenti per la configurazione del servizio negli ambienti di integrazione Pro e negli ambienti Starter, incluso il ramo master
.
Per abilitare Elasticsearch:
-
Per i progetti Starter, aggiungere il servizio
elasticsearch
al file.magento/services.yaml
con la versione di Elasticsearch e spazio su disco allocato in MB.elasticsearch: type: elasticsearch:<version> disk: 1024
Per i progetti Pro, è necessario inviare un ticket di supporto Adobe Commerce per modificare la versione dell’Elasticsearch negli ambienti di staging e produzione.
-
Impostare la proprietà
relationships
nel file.magento.app.yaml
.relationships: elasticsearch: "elasticsearch:elasticsearch"
-
Aggiungi, conferma e invia modifiche al codice.
git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable Elasticsearch" && git push origin <branch-name>
Per informazioni su come queste modifiche influiscono sugli ambienti, vedi Servizi.
-
Al termine del processo di distribuzione, utilizzare SSH per accedere all'ambiente remoto.
magento-cloud ssh
-
Reindicizza l’indice di ricerca del catalogo.
bin/magento indexer:reindex catalogsearch_fulltext
-
Pulire la cache.
bin/magento cache:clean
services.yaml
e .magento.app.yaml
. Per informazioni sull'aggiornamento o il downgrade di un servizio, vedere Modifica versione del servizio.Elasticsearch compatibilità software
Quando installi o aggiorni il progetto Adobe Commerce su infrastruttura cloud, verifica sempre la compatibilità tra la versione del servizio Elasticsearch e il client Elasticsearch PHP per Adobe Commerce.
-
Prima installazione-Verificare che la versione dell'Elasticsearch specificata nel file
services.yaml
sia compatibile con il client PHP dell'Elasticsearch configurato per Adobe Commerce. -
Aggiornamento del progetto-Verificare che il client PHP Elasticsearch nella nuova versione dell'applicazione sia compatibile con la versione del servizio Elasticsearch installata nell'infrastruttura cloud.
Il supporto per la versione del servizio e la compatibilità per l’infrastruttura cloud di Adobe Commerce è determinato dalle versioni distribuite nell’infrastruttura cloud e talvolta differisce dalle versioni supportate dalle distribuzioni Adobe Commerce on-premise. Vedi Versioni del servizio.
Per verificare la compatibilità del software Elasticsearch:
-
Sulla workstation locale, passa alla directory del progetto.
-
Mostra i dettagli dell’Elasticsearch per l’ambiente attivo.
magento-cloud relationships --property=elasticsearch
-
In alternativa, è possibile utilizzare SSH per accedere all’ambiente remoto.
magento-cloud ssh
-
Controllare la versione del pacchetto Compositore per
elasticsearch/elasticsearch
.composer show elasticsearch/elasticsearch
Nella risposta, controllare la versione installata nella proprietà
versions
.name : elasticsearch/elasticsearch descrip. : PHP Client for Elasticsearch keywords : client, elasticsearch, search versions : * v7.17.1 type : library license : Apache License 2.0 (Apache-2.0) (OSI approved) https://spdx.org/licenses/Apache-2.0.html#licenseText license : GNU Lesser General Public License v2.1 only (LGPL-2.1-only) (OSI approved) https://spdx.org/licenses/LGPL-2.1-only.html#licenseText homepage : source : [git] git@github.com:elastic/elasticsearch-php.git f1b8918f411b837ce5f6325e829a73518fd50367 dist : [zip] https://api.github.com/repos/elastic/elasticsearch-php/zipball/f1b8918f411b837ce5f6325e829a73518fd50367 f1b8918f411b837ce5f6325e829a73518fd50367 path : ~/vendor/elasticsearch/elasticsearch names : elasticsearch/elasticsearch
È inoltre possibile trovare la versione del client PHP di Elasticsearch nel file
composer.lock
nella directory radice dell'ambiente. -
Dalla riga di comando, recupera i dettagli della connessione al servizio Elasticsearch.
vendor/bin/ece-tools env:config:show services
Nella risposta, individua l’indirizzo IP per l’endpoint del servizio Elasticsearch:
| elasticsearch: | +------------------------------------------+----------------------------------------------------------------------+ | username | null | | scheme | http | | service | elasticsearch | | fragment | null | | ip | 169.254.220.11 | | hostname | dzggu33f75wi3sd24lgwtoupxm.elasticsearch.service._.magentosite.cloud | | public | false | | cluster | fo3qdoxtla4j4-master-7rqtwti | | host | elasticsearch.internal | | rel | elasticsearch | | query | | | path | null | | password | null | | type | elasticsearch:6.5 | | port | 9200 | +------------------------------------------+----------------------------------------------------------------------+
-
Recuperare il servizio Elasticsearch installato
version:number
dall'endpoint del servizio.curl -XGET <elasticsearch-service-endpoint-ip-address>:9200/
{ "name" : "-AqGi9D", "cluster_name" : "elasticsearch", "cluster_uuid" : "_yze6-ywSEW1MaAF8ZPWyQ", "version" : { "number" : "6.5.4", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "82a8aa7", "build_date" : "2019-01-23T12:07:18.760675Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, " tagline" : "You Know, for Search" }
-
Verificare la compatibilità della versione tra il servizio Elasticsearch e il client PHP.
Se le versioni non sono compatibili, effettua uno dei seguenti aggiornamenti alla configurazione dell’ambiente:
-
Modificare il client PHP Elasticsearch in una versione compatibile con la versione del servizio Elasticsearch.
composer require "elasticsearch/elasticsearch:~<version>"
-
Modificare la versione del servizio Elasticsearch nel file
services.yaml
in una versione compatibile con il client PHP Elasticsearch.
-
-
Per i progetti Pro, è necessario inviare un ticket di supporto Adobe Commerce per installare o aggiornare servizi solo negli ambienti
Staging
eProduction
. -
Indicare le modifiche necessarie al servizio, includere i file
.magento.app.yaml
eservices.yaml
aggiornati e indicare la versione PHP nel ticket. Per le modifiche self-service alle impostazioni di versione PHP, estensioni o ambiente, vedere Impostazioni PHP in Configurazione applicazione. -
Per le modifiche a un ambiente di produzione live (Solo Pro), è necessario un preavviso minimo di 48 ore. Questo consente al team dell’infrastruttura Cloud di disporre del tempo sufficiente per eseguire il marshalling delle risorse e eseguire un aggiornamento sicuro. Il periodo di preavviso inizia quando il team dell'infrastruttura riconosce la richiesta e pianifica l'aggiornamento, esclusi i fine settimana. Ad esempio, per completare gli aggiornamenti del servizio il lunedì, è necessario ricevere una conferma dell'aggiornamento pianificato entro mercoledì. Durante i periodi di picco della domanda, l'elaborazione della richiesta potrebbe richiedere più tempo.
Riavvia il servizio Elasticsearch
Se devi riavviare il servizio Elasticsearch, devi contattare il supporto Adobe Commerce.
Configurazione di ricerca aggiuntiva
-
Per impostazione predefinita, la configurazione di ricerca per gli ambienti Cloud viene rigenerata ogni volta che si distribuisce. È possibile utilizzare la variabile di distribuzione
SEARCH_CONFIGURATION
per mantenere le impostazioni di ricerca personalizzate tra le distribuzioni. Vedi Distribuire le variabili. -
Dopo aver configurato il servizio Elasticsearch per il progetto, utilizza l’interfaccia utente di amministrazione per testare la connessione Elasticsearch e personalizzare le impostazioni Elasticsearch per Adobe Commerce.
Aggiungi plug-in per Elasticsearch
Facoltativamente, è possibile aggiungere plug-in, ad Elasticsearch aggiungendo la sezione configuration:plugins
al servizio Elasticsearch nel file .magento/services.yaml
. Ad esempio, il codice seguente abilita i plug-in di analisi ICU e analisi fonetica.
elasticsearch:
type: elasticsearch:<service-version>
disk: 1024
configuration:
plugins:
- analysis-icu
- analysis-phonetic
Se si utilizza il plug-in di terze parti Elastic Suite, è necessario aggiornare il pacchetto ece-tools
alla versione 2002.0.19 o successiva.
Durante la configurazione di Elastic Suite, aggiungere le impostazioni di configurazione alla variabile di distribuzione ELASTICSUITE_CONFIGURATION
. Questa configurazione salva le impostazioni tra le distribuzioni.
Rimuovi i plug-in per Elasticsearch
La rimozione delle voci del plug-in da elasticsearch:
in .magento/services.yaml
non ne comporta la disinstallazione o la disattivazione come previsto. Devi reindicizzare i dati dell’Elasticsearch. Questo comportamento è intenzionale per evitare la possibile perdita o danneggiamento dei dati che dipendono da questi plug-in.
Per rimuovere i plug-in di Elasticsearch:
-
Rimuovi le voci del plug-in di Elasticsearch dal file
.magento/services.yaml
. -
Aggiungi, esegui il commit e invia le modifiche al codice.
git add .magento/services.yaml
git commit -m "Remove Elasticsearch plugin"
git push origin <branch-name>
-
Apporta le
.magento/services.yaml
modifiche all'archivio Cloud. -
Reindicizza l’indice di ricerca del catalogo.
bin/magento indexer:reindex catalogsearch_fulltext
-
Pulire la cache.
bin/magento cache:clean
Risoluzione dei problemi
Consulta i seguenti articoli di supporto Adobe Commerce per assistenza nella risoluzione dei problemi di Elasticsearch: