Elasticsearch-Fehler mach Shopinstallation

  • Betroffene App
    WoltLab Suite Core

    Nach der Installation des VieCode Shops erhalte ich bei der Suche (nur wenn Alles oder der Shop durchsucht wird) folgenden Fehler:

    elasticsearch error:

    Array

    (

    [root_cause] => Array

    (

    [0] => Array

    (

    [type] => query_shard_exception

    [reason] => No mapping found for [time] in order to sort on

    [index_uuid] => jOiAvTLES2iVOpxBg59Ovw

    [index] => wcf_com_viecode_shop_product

    )

    )

    [type] => search_phase_execution_exception

    [reason] => all shards failed

    [phase] => query

    [grouped] => 1

    [failed_shards] => Array

    (

    [0] => Array

    (

    [shard] => 0

    [index] => wcf_com_viecode_shop_product

    [node] => hAUWVsM7SrmKKDL-IiaA3Q

    [reason] => Array

    (

    [type] => query_shard_exception

    [reason] => No mapping found for [time] in order to sort on

    [index_uuid] => jOiAvTLES2iVOpxBg59Ovw

    [index] => wcf_com_viecode_shop_product

    )

    )

    )

    )


    Suchindex für den Shop wurde aktualisiert, hat leider nicht geholfen.

    Fehler im elasticsearch Plugin oder im Shop?

  • Christopher Walz 20. Oktober 2019 um 20:07

    Hat den Titel des Themas von „Elasticseach-Fehler mach Shopinstallation“ zu „Elasticsearch-Fehler mach Shopinstallation“ geändert.
  • Das Problem dürfte sein, dass im Shop Produkte keinen Erstellungszeitpunkt haben.

    Du kannst im ACP die Relevanz-Gewichtung für die Zeit vollständig deaktivieren, schau mal ob dies dein Problem behebt.

    • Offizieller Beitrag

    Wie sieht denn das Mapping des Index aus?

    (Ersetze localhost:9200 durch die passende Angabe)

    Code
    curl -XGET http://localhost:9200/wcf_com_viecode_shop_product/_mapping?pretty

    Welche Version wird verwendet? Kann auch mit curl -XGET http://localhost:9200/?pretty abgefragt werden, relevant ist version.number.

    • Offizieller Beitrag

    Eigentlich nicht, denn der Index wird im Worker zurückgesetzt, dies sorgt bei Elasticsearch dafür, dass der Index gelöscht wird falls er existiert und anschließend immer neu angelegt wird.

    Bitte löschen den bestehenden Index und führe dann den Rebuild-Worker für die Produkte neu aus:

    Code
    curl -X DELETE http://localhost:9200/wcf_com_viecode_shop_product/

    Anschließend verifziere, dass er auch gelöscht wurde, bevor du den Worker ausführst:

    Code
    curl -XGET http://localhost:9200/wcf_com_viecode_shop_product/

    Dies sollte einen 404 produzieren.

  • Kann es sein, dass der Worker einfach einen Fehler enthält?

  • Jup.

    • Offizieller Beitrag

    Puh, das ist jetzt echt mysteriös. Der Index wird indirekt über den Aufruf SearchIndexManager::getInstance()->reset('…'); zurückgesetzt, der Worker selbst hat keinen direkten Zugriff auf das Anlegen des Index, da diese ein generisches Layout verwenden. Logisch anzunehmen wäre daher, dass der Index nicht existiert oder aber existiert und über ein korrektes Mapping verfügt.

    Ich kann jetzt aber nicht ausschließen, dass der Index über irgendetwas obskures implizit angelegt wurde und dadurch über kein Mapping verfügt. Kannst du zum Test bitte mal ein Produkt anlegen und dann den Suchindex aktualisieren lassen? Wenn es dann funktioniert, liegt der Verdacht nahe, dass es irgendeine Besonderheit beim Worker geben muss, aber das ist wirklich nur Spekulation meinerseits.

  • Kann ich später mal testen.

    Der möglicherweise betroffene Code im Worker des Shops sieht folgendermaßen aus:

  • - Index gelöscht (über cURL)

    - Produkt angelegt => Index korrekt

    - Worker ausgeführt => Index immer noch korrekt

    - Produkt gelöscht => Index immer noch korrekt

    - Worker ausgeführt => Index immer noch korrekt

    - Index gelöscht (über cURL)

    - Worker ausgeführt => Index immer noch korrekt

    => Sobald der Index einmal korrekt angelegt wurde, scheint es zu passen. Auch wenn man ihn zwischendurch löscht inklusive Testprodukt und ihn über den Worker neu anlegt. Mysteriös. Nun scheint es aber auch ohne Produkt zu funktionieren.

  • Alexander Ebert 23. Oktober 2019 um 17:46

    Hat das Label Nicht reproduzierbar hinzugefügt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!