Configurare il servizio Elasticsearch
Elasticsearch è un prodotto open-source che consente di acquisire dati da qualsiasi origine, qualsiasi formato, nonché di eseguire ricerche e visualizzazioni 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 presenti 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
elasticsearchal file.magento/services.yamlcon la versione di Elasticsearch e spazio su disco allocato in MB.code language-yaml elasticsearch: type: elasticsearch:<version> disk: 1024Per i progetti Pro, è necessario inviare un ticket di supporto Adobe Commerce per modificare la versione di Elasticsearch negli ambienti di staging e produzione.
-
Impostare la proprietà
relationshipsnel file.magento.app.yaml.code language-yaml relationships: elasticsearch: "elasticsearch:elasticsearch" -
Aggiungi, conferma e invia modifiche al codice.
code language-bash 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.
code language-bash magento-cloud ssh -
Reindicizza l’indice di ricerca del catalogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext -
Pulire la cache.
code language-bash 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. Questo metodo self-service non è applicabile agli ambienti Pro Staging o Production. Vedere Supporto servizi Pro in Configurazione servizi.Compatibilità del software Elasticsearch
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 di Elasticsearch specificata nel file
services.yamlsia compatibile con il client Elasticsearch PHP configurato per Adobe Commerce. -
Aggiornamento del progetto-Verificare che il client Elasticsearch PHP 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 di Elasticsearch per l’ambiente attivo.
code language-bash magento-cloud relationships --property=elasticsearch -
In alternativa, è possibile utilizzare SSH per accedere all’ambiente remoto.
code language-bash magento-cloud ssh -
Controllare la versione del pacchetto Compositore per
elasticsearch/elasticsearch.code language-bash composer show elasticsearch/elasticsearchNella risposta, controllare la versione installata nella proprietà
versions.code language-none 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 Elasticsearch PHP nel file
composer.locknella directory principale dell’ambiente. -
Dalla riga di comando, recupera i dettagli della connessione al servizio Elasticsearch.
code language-bash vendor/bin/ece-tools env:config:show servicesNella risposta, individua l’indirizzo IP per l’endpoint del servizio Elasticsearch:
code language-none | 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
version:numberinstallato dall’endpoint del servizio.code language-bash curl -XGET <elasticsearch-service-endpoint-ip-address>:9200/code language-json { "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" } -
Verifica la compatibilità tra il servizio Elasticsearch e il client PHP.
Se le versioni non sono compatibili, effettua uno dei seguenti aggiornamenti alla configurazione dell’ambiente:
-
Sostituisci il client PHP di Elasticsearch con una versione compatibile con la versione del servizio Elasticsearch.
code language-bash composer require "elasticsearch/elasticsearch:~<version>" -
Modificare la versione del servizio Elasticsearch nel file
services.yamlin una versione compatibile con il client Elasticsearch PHP.Per informazioni sui requisiti di pianificazione degli aggiornamenti del servizio Pro e sulla disponibilità dei clienti, vedere Supporto dei servizi Pro in Configurazione dei servizi.
-
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_CONFIGURATIONper 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.
Aggiungere plug-in per Elasticsearch
In alternativa, è possibile aggiungere plug-in per 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.
Rimuovere 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 di 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 Elasticsearch dal file
.magento/services.yaml. -
Aggiungi, esegui il commit e invia le modifiche al codice.
code language-bash git add .magento/services.yamlcode language-bash git commit -m "Remove Elasticsearch plugin"code language-bash git push origin <branch-name> -
Apporta le
.magento/services.yamlmodifiche all’archivio Cloud. -
Reindicizza l’indice di ricerca del catalogo.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext -
Pulire la cache.
code language-bash bin/magento cache:clean