ich will mich an die Elastic Search Integration wagen und bin leider mit einem Fehler gescheitert.
Die config.php habe ich angepasst:
In der Console habe ich die Indexe erzeugt. Was mich wundert, es kommt keine weitere Meldung. Es bleibt einfach so stehen:
Rufe ich nun den Shop auf, so erhalte ich folgende Meldung:
Fatal error : Uncaught exception ‚Elasticsearch\Common\Exceptions\Missing404Exception‘ with message ‚{„error“:{„root_cause“:[{„type“:„index_not_found_exception“,„reason“:„no such index“,„index“:„sw_shop1“,„resource.type“:„index_or_alias“,„resource.id“:„sw_shop1“}],„type“:„index_not_found_exception“,„reason“:„no such index“,„index“:„sw_shop1“,„resource.type“:„index_or_alias“,„resource.id“:„sw_shop1“},„status“:404}‘ in /usr/www/users/cartot/_develop/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php:519 Stack trace: #0 /usr/www/users/cartot/_develop/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php(208): Elasticsearch\Connections\Connection->process4xxError(Array, Array, Array) #1 /usr/www/users/cartot/_develop/vendor/react/promise/src/FulfilledPromise.php(25): Elasticsearch\Connections\Connection->Elasticsearch\Connections{closure}(Array) #2 /usr/www/users/cartot/_develop/vendor/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php(55): React\Promise\FulfilledProm in /usr/www/users/cartot/_develop/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php on line 519
Da ich bis jetzt mit dem Thema noch keine Erfahrung habe, bin ich über jeden Tipp dankbar.
Okay, nach dem x-Versuch ist die Indexierung nun durchgelaufen. Jetzt erhalte ich keinerlei Fehlermeldung mehr und der Shop läuft relativ gut und schnell.
Was mir aber auffällt, wenn ich auf ein Hauptnavigation / Listing klicke, so habe ich ohne Elastic Search ca. 20 Filter Gruppen.
Mit aktivem Elastic Search sind es auch ca. 20 Filtergruppen. Setze ich nun einen Filter und zeige das Ergebnis an, so ist auf einmal kein Filter gesetzt und ich sehe nur noch 10 Filtergruppen.
Hat jemand eine Idee?
Es sieht so aus, als würden nicht alle Filter / Eigenschaften korrekt in ES indexiert worden sein.
Kann ich das irgendwie prüfen?
Wenn ich die Einbindung in der config.php Datei mit den Eckigen Klammern mache, so bekomme ich im Frontend keine Meldung. Alles sieht normal aus. Aber das System läuft nicht über ES. Wenn man z.B. den Port abändert und auch noch nicht gecachte Seite geht, kommt keine Fehlermeldung. Obwohl der Port nicht stimmt!
Binde ich es auf dem array() weg ein, so wie auch die anderen Informationen in der Dateie stehen, so bekomme ich bei einem falschen Port sofort eine Fehlermeldung.
Bitte mal bei Ihnen überprüfen/testen. Evtl. läuft es ja garnicht über ES.
Mein Eigenschaftenproblem bleibt bestehen. Es sind 18 normale Shopware Standard Eigenschaften Filter und 1 Attributfilter.
Ich müsste irgendwie validieren, dass die Eigenschaften korrekt indexiert wurden.
Mit Elastic HQ habe ich nun ein Tool um mir einige Dinge anzuschauen:
Man sieht ich habe einen Index und wenn ich mir die Mappings anschauen, habe ich folgende:
Ok, wenn ich die Config mittels Array Klammern einbaue, dann funktioniert ES mit Shopware.
Es treten aber auch Probleme auf. Es werden auch nicht alle Filter in einer Kategorie angezeigt.
Alle Eigenschaften Filter werden nicht in den Kategorien angezeigt. Der Filter als solches verhält sich OK. Es fehlt nur das “Motorradmodell”.
Und ganz komisch:
In der normalen Produktsuche und einigen Kategorien erhalte die Fehlermeldung:
Fatal error: Uncaught exception 'RuntimeException' with message 'ShopwarePlugins\SwagFuzzy\Bundle\SearchBundle\KeywordFacet class not supported' in /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php:159 Stack trace: #0 /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php(140): Shopware\Bundle\SearchBundleES\ProductNumberSearch->getHandler(Object(ShopwarePlugins\SwagFuzzy\Bundle\SearchBundle\KeywordFacet)) #1 /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php(119): Shopware\Bundle\SearchBundleES\ProductNumberSearch->addCriteriaParts(Object(Shopware\Bundle\SearchBundle\Criteria), Object(Shopware\Bundle\StoreFrontBundle\Struct\ProductContext), Object(ONGR\ElasticsearchDSL\Search), Array) #2 /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php(77): Shopware\Bundle\SearchBundleES\ProductNumberSearch->buildSearch(Object(Shopware\Bundle in /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php on line 159
503 Service Unavailable
Super wären, wenn sich jemand von Shopware mal einklinken könnte. Auch wenn es offiziell kein Support gibt
das kann ich so nicht nachstellen in meiner lokalen Installation. Welche Shopware-Version und welche ES-Version setzt ihr denn ein?
In den letzten Versionen gab es ja immer mal wieder Bugfixes. Eine 5.1.2 solltet ihr da schon einsetzen.
Fatal error: Uncaught exception 'RuntimeException' with message 'ShopwarePlugins\SwagFuzzy\Bundle\SearchBundle\KeywordFacet class not supported' in /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php:159 Stack trace: #0 /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php(140): Shopware\Bundle\SearchBundleES\ProductNumberSearch->getHandler(Object(ShopwarePlugins\SwagFuzzy\Bundle\SearchBundle\KeywordFacet)) #1 /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php(119): Shopware\Bundle\SearchBundleES\ProductNumberSearch->addCriteriaParts(Object(Shopware\Bundle\SearchBundle\Criteria), Object(Shopware\Bundle\StoreFrontBundle\Struct\ProductContext), Object(ONGR\ElasticsearchDSL\Search), Array) #2 /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php(77): Shopware\Bundle\SearchBundleES\ProductNumberSearch->buildSearch(Object(Shopware\Bundle in /var/www/clients/client1/web2/web/test/engine/Shopware/Bundle/SearchBundleES/ProductNumberSearch.php on line 159
503 Service Unavailable
KeywordFacet und ProductNumberSearch sagt mir eigentlich dass er was mit der Keyword Tabelle machen will. Ich habe bereits alle Relevanz Felder und Tabellen aus den Einstellungen entfernt. Komme aber nicht weiter.
Jedes mal auch ES populate, backlog sync und shopware cache komplett geleert.
Eventuell kann @Benjamin Cremer uns weiter helfen, eh wir im Dunkeln rum stochern? Danke
SwagFuzzy ist zurzeit noch nicht Elastic Search kompatibel, daher die oben genannte Fehlermeldung.
Bitte beachtet außerdem, dass sich Elastic Search erst ab Datenmengen von etwa 100.000 Produkten lohnt. Darunter wird es wahrscheinlich eher für mehr Probleme sorgen.
dass sich Elastic Search erst ab Datenmengen von etwa 100.000 Produkten lohnt.
Benjamin Cremer
Was ist genau mit 100.000 Produkten gemeint, inkl. Varianten?
Wir haben derzeit fast 18.000 Artikel bei uns im Shop, alles Varianten Artikel. Insgesamt also über 4,8 Mio Einzelartikel. Sind mit 100.000 Produkten auch die Varianten gemeint?
Als Server haben einen Intel Xeon E5-1650V2 mit 2x SSD 240 GB SATA Datacenter und 64 Gb RAM.