Configura servizio Elasticsearch

Elasticsearch è un prodotto open-source che consente di estrarre dati da qualsiasi origine, qualsiasi formato, nonché di eseguire ricerche e visualizzarli in tempo reale.

WARNING
Elasticsearch 7.11 e versioni successive non è supportato per Adobe Commerce sull’infrastruttura cloud. Le versioni di Adobe Commerce 2.3.7-p3, 2.4.3-p2 e 2.4.4 e successive supportano il servizio OpenSearch. Gli impianti locali continuano a sostenere l'Elasticsearch.

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
TIP
L’Adobe consiglia di impostare sempre Elasticsearch per il progetto di infrastruttura cloud di Adobe Commerce, anche se prevedi di configurare uno strumento di ricerca di terze parti per l’applicazione Adobe Commerce. L’Elasticsearch di configurazione fornisce un’opzione di fallback nel caso in cui lo strumento di ricerca di terze parti non riesca.

Utilizzare le istruzioni seguenti per la configurazione del servizio negli ambienti di integrazione Pro e negli ambienti Starter, incluso il ramo master.

NOTE
Invia un ticket di supporto Adobe Commerce per modificare la configurazione del servizio negli ambienti di produzione e staging di Pro.

Per abilitare Elasticsearch:

  1. 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.

    code language-yaml
    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.

  2. Impostare la proprietà relationships nel file .magento.app.yaml.

    code language-yaml
    relationships:
        elasticsearch: "elasticsearch:elasticsearch"
    
  3. 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.

  4. Al termine del processo di distribuzione, utilizzare SSH per accedere all'ambiente remoto.

    code language-bash
    magento-cloud ssh
    
  5. Reindicizza l’indice di ricerca del catalogo.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. Pulire la cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Dopo la configurazione iniziale del servizio, è possibile modificare la versione del software per un servizio installato aggiornando i file di configurazione 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:

  1. Sulla workstation locale, passa alla directory del progetto.

  2. Mostra i dettagli dell’Elasticsearch per l’ambiente attivo.

    code language-bash
    magento-cloud relationships --property=elasticsearch
    
  3. In alternativa, è possibile utilizzare SSH per accedere all’ambiente remoto.

    code language-bash
    magento-cloud ssh
    
  4. Controllare la versione del pacchetto Compositore per elasticsearch/elasticsearch.

    code language-bash
    composer show elasticsearch/elasticsearch
    

    Nella 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 PHP di Elasticsearch nel file composer.lock nella directory radice dell'ambiente.

  5. Dalla riga di comando, recupera i dettagli della connessione al servizio Elasticsearch.

    code language-bash
    vendor/bin/ece-tools env:config:show services
    

    Nella 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                                                                 |
    +------------------------------------------+----------------------------------------------------------------------+
    
  6. Recuperare il servizio Elasticsearch installato version:number 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"
    }
    
  7. 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.

      code language-bash
      composer require "elasticsearch/elasticsearch:~<version>"
      
    • Modificare la versione del servizio Elasticsearch nel file services.yaml in una versione compatibile con il client PHP Elasticsearch.

TIP
Per i progetti Pro, è necessario inviare un ticket di supporto Adobe Commerce per installare o aggiornare servizi solo negli ambienti Staging e Production.
Indicare le modifiche necessarie al servizio, includere i file .magento.app.yaml e services.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:

  1. Rimuovi le voci del plug-in di Elasticsearch dal file .magento/services.yaml.

  2. Aggiungi, esegui il commit e invia le modifiche al codice.

    code language-bash
    git add .magento/services.yaml
    
    code language-bash
    git commit -m "Remove Elasticsearch plugin"
    
    code language-bash
    git push origin <branch-name>
    
  3. Apporta le .magento/services.yaml modifiche all'archivio Cloud.

  4. Reindicizza l’indice di ricerca del catalogo.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. Pulire la cache.

    code language-bash
    bin/magento cache:clean
    
TIP
Per informazioni dettagliate sull'utilizzo o sulla risoluzione dei problemi relativi al plug-in Elastic Suite con Adobe Commerce, consulta la documentazione di Elastic Suite.

Risoluzione dei problemi

Consulta i seguenti articoli di supporto Adobe Commerce per assistenza nella risoluzione dei problemi di Elasticsearch:

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26