Nach Cache löschen im Backend und Aufruf einer Kategorie -> Fehlermeldung

Hallo Gemeinde,

versuche meinen Modified-Shop auf Shopware zu migrieren.

Habe alle Daten in Shopware mittels Migrationstool importiert. Wenn ich jetzt im Backend den Shop-Cache lösche und dann im Frontend z.B. eine Kategorie aufrufe, erhalte ich folgende Fehlermeldung:

An exception occurred while executing 'INSERT IGNORE INTO s_search_index (keywordID, elementID, fieldID) SELECT sk.id as keywordID, 24 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01040') UNION ALL SELECT sk.id as keywordID, 1756 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01041') UNION ALL SELECT sk.id as keywordID, 2151 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01041', 's') UNION ALL SELECT sk.id as keywordID, 1755 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01042') UNION ALL SELECT sk.id as keywordID, 1772 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01043') UNION ALL SELECT sk.id as keywordID, 951 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01044') UNION ALL SELECT sk.id as keywordID, 1773 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01045') UNION ALL SELECT sk.id as keywordID, 793 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01047') UNION ALL SELECT sk.id as keywordID, 1776 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01051') UNION ALL SELECT sk.id as keywordID, 1771 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01052') UNION ALL SELECT sk.id as keywordID, 1769 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01053') UNION ALL SELECT sk.id as keywordID, 2095 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01114') UNION ALL SELECT sk.id as keywordID, 866 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01131') UNION ALL SELECT sk.id as keywordID, 869 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01132') UNION ALL SELECT sk.id as keywordID, 65 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01195') UNION ALL SELECT sk.id as keywordID, 1512 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01196') UNION ALL SELECT sk.id as keywordID, 305 as elementID, 5 as fieldID FROM s_search_keywords sk WHERE sk.keyword IN ('01197') UNION ALL SELECT sk.id as keywordID, 67 as elementID, 5 as fieldID FROM s_search_keywords ....

Die obige Fehlermeldung ist wesentlich länger. Klicke danach auf die gleiche Kategorie wird mir diese ohne Probleme angezeigt. Den Fehler kann ich immer wieder nachstellen. Shop-Cache löschen -> irgendeine Kategorie aufrufen -> Fehlermeldung.

Dazu gibt es dann noch diese Fehlermeldung:

Stack trace:

#0 vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1015): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(PDOException), 'INSERT IGNORE I...', Array)
#1 engine/Shopware/Bundle/SearchBundleDBAL/SearchTerm/SearchIndexer.php(227): Doctrine\DBAL\Connection->executeUpdate('INSERT IGNORE I...')
#2 engine/Shopware/Bundle/SearchBundleDBAL/SearchTerm/SearchIndexer.php(103): Shopware\Bundle\SearchBundleDBAL\SearchTerm\SearchIndexer->build()
#3 engine/Shopware/Bundle/SearchBundleDBAL/SearchTerm/SearchTermQueryBuilder.php(78): Shopware\Bundle\SearchBundleDBAL\SearchTerm\SearchIndexer->validate()
#4 var/cache/production_201805041539/proxies/ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer.php(2533): Shopware\Bundle\SearchBundleDBAL\SearchTerm\SearchTermQueryBuilder->__construct(Object(Shopware_Components_Config), Object(Doctrine\DBAL\Connection), Object(Shopware\Bundle\SearchBundleDBAL\SearchTerm\CacheKeywordFinder), Object(Shopware\Bundle\SearchBundleDBAL\SearchTerm\SearchIndexer), Object(Shopware\Bundle\SearchBundleDBAL\SearchTerm\TermHelper))
#5 vendor/symfony/dependency-injection/Container.php(297): ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer->getShopwareSearchdbal_SearchQueryBuilderDbalService()
#6 engine/Shopware/Components/DependencyInjection/Container.php(211): Symfony\Component\DependencyInjection\Container->get('shopware_search...', 1)
#7 engine/Shopware/Components/DependencyInjection/Container.php(143): Shopware\Components\DependencyInjection\Container->doLoad('shopware_search...', 1)
#8 var/cache/production_201805041539/proxies/ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer.php(2521): Shopware\Components\DependencyInjection\Container->get('shopware_search...')
#9 vendor/symfony/dependency-injection/Container.php(297): ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer->getShopwareSearchdbal_SearchConditionHandlerDbalService()
#10 engine/Shopware/Components/DependencyInjection/Container.php(211): Symfony\Component\DependencyInjection\Container->get('shopware_search...', 1)
#11 engine/Shopware/Components/DependencyInjection/Container.php(143): Shopware\Components\DependencyInjection\Container->doLoad('shopware_search...', 1)
#12 var/cache/production_201805041539/proxies/ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer.php(2393): Shopware\Components\DependencyInjection\Container->get('shopware_search...')
#13 vendor/symfony/dependency-injection/Container.php(297): ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer->getShopwareSearchdbal_DbalQueryBuilderFactoryService()
#14 engine/Shopware/Components/DependencyInjection/Container.php(211): Symfony\Component\DependencyInjection\Container->get('shopware_search...', 1)
#15 engine/Shopware/Components/DependencyInjection/Container.php(143): Shopware\Components\DependencyInjection\Container->doLoad('shopware_search...', 1)
#16 var/cache/production_201805041539/proxies/ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer.php(2117): Shopware\Components\DependencyInjection\Container->get('shopware_search...')
#17 vendor/symfony/dependency-injection/Container.php(297): ShopwareProductionda39a3ee5e6b4b0d3255bfef95601890afd80709ProjectContainer->getShopwareSearch_ProductNumberSearchService()
#18 engine/Shopware/Components/DependencyInjection/Container.php(211): Symfony\Component\DependencyInjection\Container->get('shopware_search...', 1)
#19 engine/Shopware/Components/DependencyInjection/Container.php(143): Shopware\Components\DependencyInjection\Container->doLoad('shopware_search...', 1)
#20 engine/Library/Enlight/Controller/Action.php(414): Shopware\Components\DependencyInjection\Container->get('shopware_search...')
#21 engine/Shopware/Controllers/Frontend/Listing.php(272): Enlight_Controller_Action->get('shopware_search...')
#22 engine/Shopware/Controllers/Frontend/Listing.php(243): Shopware_Controllers_Frontend_Listing->hasProducts('76', Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext), NULL)
#23 engine/Shopware/Controllers/Frontend/Listing.php(56): Shopware_Controllers_Frontend_Listing->getEmotionConfiguration('76', false, NULL)
#24 engine/Library/Enlight/Controller/Action.php(193): Shopware_Controllers_Frontend_Listing->indexAction()
#25 engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('indexAction')
#26 engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#27 engine/Shopware/Kernel.php(215): Enlight_Controller_Front->dispatch()
#28 vendor/symfony/http-kernel/HttpCache/HttpCache.php(486): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#29 engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#30 vendor/symfony/http-kernel/HttpCache/HttpCache.php(443): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#31 vendor/symfony/http-kernel/HttpCache/HttpCache.php(339): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
#32 engine/Shopware/Components/HttpCache/AppCache.php(189): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#33 vendor/symfony/http-kernel/HttpCache/HttpCache.php(205): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#34 engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#35 shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#36 {main}

Kann mir jemand helfen und sagen wo der Fehler liegt?

Danke im Voraus

Schau’ mal nach, ob die Datenbanktabelle s_search_index existiert und ob es ein Problem mit ihr gibt (evtl. ist sie als gecrasht markiert o.ä.).

Timme Hosting - schnelles nginx-Hosting

www.timmehosting.de

Danke für deine Antwort.

Die Tabelle s_search_index gibt es. Es sieht nicht danach aus, dass es Probleme mit der Tabelle gibt. Auch als gecrasht ist diese nicht markiert.

Ich hatte den Hoster all.inkl. angeschrieben ob es evtl. ein Serverproblem sein könnte (falsche Einstellung o.ä.). Die Antwort:

“Die Einstellungen des Servers sind korrekt. Ihre SQL-Abfrage erreicht allerdings das thread_stack Limit von unserem Server. Dieses ist auf 262,144 gesetzt. Die Änderung dieses Wertes ist in einem SharedHosting-Tarif nicht möglich.
Hier sollten Sie Ihre SQL-Abfrage optimieren. Für eine Optimierung sollten Sie sich, wie mein Kollege schrieb, an den Hersteller oder den zuständigen Webmaster wenden.”

Kann das tatsächlich an dem Limit liegen? Möchte ungern mit einer defekten Datenbank / Tabelle mimt dem Shopware Shop starten…

Danke und Grüße

Auf welcher shopware Version bist du

Auf der aktuellen Version 5.4.3

Versuch mal diese Zahl etwas tiefer zu stellen und zu schauen ob das Problem dadurch behoben ist

shopware/Default.php at 5.4 · shopware/shopware · GitHub . Der Fehler tritt meistens durch MySQL Server Limitierungen auf

1 „Gefällt mir“

Danke für deine Antwort.

Habe den Wert auf 3250 gesetzt. So bekomme ich zumindest keine Fehlermeldung im Frontend nach dem Cache löschen. Aber der Such-Index lässt sich auch mit einem kleineren Wert (z.B. 2000) nicht aufbauen. 

Edit: Such-Index lässt sich doch mit der o.g. Einstellung (3250) aufbauen!

Danke!

Am besten jetzt noch die Änderung in deine config.php übernehmen. Dann ist sie permanent und wird nicht überschrieben bei Shopware Updates :slight_smile:

Mmh…das habe ich noch nicht gemacht. Wo und was kommt dann in mein Theme?

Kommt diese config.php in shop -> meintheme? Wo z.B. auch die Theme.php zu finden ist?

Und was übernehme ich dann? Die ganze config.php oder z.B. nur 

return array_replace_recursive([
    'search' => [
        'indexer' => [
            'batchsize' => 3250,
        ],
    ],
], $customConfig);

Danke im Voraus.

Du hast im Hauptordner eine Datei config.php, dort stehen z.B die Datenbank Daten drin.

Die sieht zum Beispiel so aus.

 [
        'username' => '%db.user%',
        'password' => '%db.password%',
        'dbname' => '%db.database%',
        'host' => '%db.host%',
        'port' => '%db.port%'
    ],
];

Diese Änderst du ab zu

 [
        'username' => '%db.user%',
        'password' => '%db.password%',
        'dbname' => '%db.database%',
        'host' => '%db.host%',
        'port' => '%db.port%'
    ],
	'search' => [
        'indexer' => [
            'batchsize' => 3250,
        ],
    ],
];

 

1 „Gefällt mir“

Super!

Noch mal danke!

Sorry das ich mich da dranhänge.

Aber wie müsste ich die Config.php abändern um über die Konsole die Batchsize für den Export zu erhöhen.

Guck mal bitte auf die markierte Lösung dieses Threads. Da steht wirklich alles drin. Ansonsten gibt es etliche Shopware-Partneragenturen die dich unterstützen können.

Das habe ich ja gesehen aber hier wird ja die suche angepasst.

Aber es wird doch direkt auf das default-config-file verlinkt. Wenn du da nichts passendes drin findest beantwortet das ja auch deine Frage.