Konfigurera tjänsten Elasticsearch

Elasticsearch är en öppen källkodsprodukt som gör att du kan hämta data från alla källor, alla format och söka efter och visualisera den i realtid.

WARNING
Elasticsearch 7.11 och senare stöds inte för Adobe Commerce i molninfrastruktur. Adobe Commerce version 2.3.7-p3, 2.4.3-p2 och 2.4.4 och senare stöder OpenSearch-tjänsten. De lokala anläggningarna fortsätter att stödja Elasticsearch.

Information om Adobe Commerce version 2.4.4 och senare finns i Konfigurera OpenSearch-tjänsten.

  • Elasticsearch gör snabba och avancerade sökningar i produktkatalogen
  • Elasticsearch Analyzers har stöd för flera språk
  • Stöder stoppord och synonymer
  • Indexeringen påverkar inte kunderna förrän omindexeringsåtgärden har slutförts
TIP
Adobe rekommenderar att du alltid ställer in Elasticsearch för ditt Adobe Commerce i molninfrastrukturprojekt, även om du tänker konfigurera ett tredjepartssökverktyg för ditt Adobe Commerce-program. När du konfigurerar Elasticsearch finns ett reservalternativ om det inte går att använda tredjepartssökverktyget.

Använd följande instruktioner för tjänstkonfiguration i Pro Integration-miljöer och Starter-miljöer, inklusive grenen master.

NOTE
Skicka en Adobe Commerce-supportanmälan om du vill ändra tjänstkonfigurationen i Pro Production- och mellanlagringsmiljöer.

Så här aktiverar du Elasticsearch:

  1. För startprojekt lägger du till tjänsten elasticsearch i filen .magento/services.yaml med Elasticsearch-versionen och allokerat diskutrymme i MB.

    code language-yaml
    elasticsearch:
        type: elasticsearch:<version>
        disk: 1024
    

    För Pro-projekt måste du skicka in en Adobe Commerce Support-biljett för att ändra Elasticsearch-versionen i mellanlagrings- och produktionsmiljöerna.

  2. Ange egenskapen relationships i filen .magento.app.yaml.

    code language-yaml
    relationships:
        elasticsearch: "elasticsearch:elasticsearch"
    
  3. Lägg till, implementera och push-ändra kod.

    code language-bash
    git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable Elasticsearch" && git push origin <branch-name>
    

    Mer information om hur dessa ändringar påverkar dina miljöer finns i Tjänster.

  4. När distributionen är klar använder du SSH för att logga in på fjärrmiljön.

    code language-bash
    magento-cloud ssh
    
  5. Indexera om indexet för katalogsökning.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. Rensa cachen.

    code language-bash
    bin/magento cache:clean
    
TIP
Efter den första konfigurationen av tjänsten kan du ändra programversionen för en installerad tjänst genom att uppdatera konfigurationsfilerna för services.yaml och .magento.app.yaml. Mer information om hur du uppgraderar eller nedgraderar en tjänst finns i Ändra tjänstversion.

Kompatibilitet med Elasticsearch-program

När du installerar eller uppgraderar din Adobe Commerce i ett molninfrastrukturprojekt ska du alltid kontrollera om det finns kompatibilitet mellan Elasticsearch-tjänstversionen och Elasticsearch PHP -klienten för Adobe Commerce.

  • Första gången du installerar - Bekräfta att Elasticsearch-versionen som anges i filen services.yaml är kompatibel med Elasticsearch PHP-klienten som är konfigurerad för Adobe Commerce.

  • Projektuppgradering-Kontrollera att PHP-klienten i Elasticsearch i den nya programversionen är kompatibel med tjänstversionen i Elasticsearch som är installerad i molninfrastrukturen.

Tjänstversion och kompatibilitetsstöd för Adobe Commerce i molninfrastruktur avgörs av vilka versioner som distribueras i molninfrastrukturen, och skiljer sig ibland från de versioner som stöds av Adobe Commerce lokala distributioner. Se Tjänstversioner.

Så här kontrollerar du kompatibiliteten för Elasticsearch-program:

  1. Byt till din projektkatalog på din lokala arbetsstation.

  2. Visa information om Elasticsearch för den aktiva miljön.

    code language-bash
    magento-cloud relationships --property=elasticsearch
    
  3. Du kan också använda SSH för att logga in på fjärrmiljön.

    code language-bash
    magento-cloud ssh
    
  4. Kontrollera Composer-paketets version för elasticsearch/elasticsearch.

    code language-bash
    composer show elasticsearch/elasticsearch
    

    Kontrollera den installerade versionen i egenskapen versions i svaret.

    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
    

    Du kan också hitta Elasticsearch PHP-klientversionen i filen composer.lock i miljöns rotkatalog.

  5. Hämta tjänstanslutningsinformationen för Elasticsearch från kommandoraden.

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

    I svaret hittar du IP-adressen för Elasticsearch-tjänstslutpunkten:

    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. Hämta den installerade Elasticsearch-tjänsten version:number från tjänstslutpunkten.

    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. Kontrollera versionskompatibiliteten mellan Elasticsearch och PHP-klienten.

    Om versionerna inte är kompatibla gör du någon av följande uppdateringar av din miljökonfiguration:

    • Ändra Elasticsearch PHP-klienten till en version som är kompatibel med Elasticsearch.

      code language-bash
      composer require "elasticsearch/elasticsearch:~<version>"
      
    • Ändra tjänstversionen för Elasticsearch i filen services.yaml till en version som är kompatibel med Elasticsearch PHP-klienten.

TIP
För Pro-projekt måste du skicka en Adobe Commerce Support-biljett om du bara vill installera eller uppdatera tjänster i Staging- och Production-miljöer.
Ange vilka tjänständringar som krävs, inkludera dina uppdaterade .magento.app.yaml- och services.yaml-filer och ange PHP-versionen i biljetten. Om du vill göra ändringar i PHP-version, tillägg eller miljöinställningar för självbetjäning läser du PHP-inställningar i Programkonfiguration.
För ändringar i en aktiv produktionsmiljö (endast Pro) krävs minst 48 timmars varsel. Detta ger molninfrastruktursteamet tillräckligt med tid för att samla in resurser och genomföra en säker uppgradering. Anmälningsperioden börjar när infrastrukturteamet godkänner begäran och schemalägger uppgraderingen, exklusive helger. Om du t.ex. vill att uppgraderingarna ska vara klara på måndag måste du få en bekräftelse på den schemalagda uppgraderingen senast på onsdagen. Under perioder med hög efterfrågan kan det ta längre tid att behandla din begäran.

Starta om tjänsten Elasticsearch

Om du behöver starta om tjänsten Elasticsearch måste du kontakta Adobe Commerce support.

Ytterligare sökkonfiguration

  • Som standard återskapas sökkonfigurationen för molnmiljöer varje gång du distribuerar. Du kan använda distributionsvariabeln SEARCH_CONFIGURATION om du vill behålla anpassade sökinställningar mellan distributioner. Se Distribuera variabler.

  • När du har konfigurerat tjänsten Elasticsearch för ditt projekt kan du testa Elasticsearch-anslutningen och anpassa Elasticsearch-inställningarna för Adobe Commerce med hjälp av administratörsgränssnittet.

Lägg till plugin-program för Elasticsearch

Du kan också lägga till plugin-program för Elasticsearch genom att lägga till avsnittet configuration:plugins i tjänsten Elasticsearch i filen .magento/services.yaml. Följande kod aktiverar till exempel ICU-analys och plugin-program för fonetisk analys.

elasticsearch:
    type: elasticsearch:<service-version>
    disk: 1024
    configuration:
        plugins:
            - analysis-icu
            - analysis-phonetic

Om du använder ett plugin-program från en annan leverantör för Elastic Suite måste du uppdatera ece-tools package till version 2002.0.19 eller senare.
När du konfigurerar Elastic Suite lägger du till konfigurationsinställningarna i variabeln ELASTICSUITE_CONFIGURATION för distribution. Den här konfigurationen sparar inställningarna mellan distributioner.

Ta bort plugin-program för Elasticsearch

Om du tar bort plugin-posterna från elasticsearch: i .magento/services.yaml avinstalleras eller inaktiveras de inte på rätt sätt. Du måste indexera om dina Elasticsearch-data. Detta beteende är avsiktligt för att förhindra att data som är beroende av dessa plugin-program går förlorade eller skadas.

Så här tar du bort plugin-program för Elasticsearch:

  1. Ta bort plugin-programposterna för Elasticsearch från din .magento/services.yaml-fil.

  2. Lägg till, implementera och push-överföra kodändringar.

    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. Genomför ändringarna av .magento/services.yaml i din molnrepo.

  4. Indexera om indexet för katalogsökning.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. Rensa cachen.

    code language-bash
    bin/magento cache:clean
    
TIP
Mer information om hur du använder eller felsöker Elastic Suite-pluginprogrammet med Adobe Commerce finns i dokumentationen för Elastic Suite.

Felsökning

Se följande Adobe Commerce supportartiklar för hjälp med felsökning av Elasticsearch-problem:

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