Indizieren und Sperren von Dateien


7

Dies ist eher eine Forschungsfrage - wir haben eine Website, die einige echte Probleme mit der Neuindizierung hat (30.000 Produkte). Es ist jetzt an dem Punkt, an dem viele Zeitüberschreitungen und SQLSTATE-Fehler auftreten. Daher Lock wait timeout exceededist es bestenfalls sporadisch, Änderungen im Admin-Bereich speichern zu können.

Wir versuchen festzustellen, ob die Indizes, die angeben, dass sie noch ausgeführt werden, dies tatsächlich tun. Wir haben über die Kommandozeile neu indiziert php indexer.php --reindexall. Stunden später steht im Suchindex in "Indexverwaltung" immer noch "Verarbeitung". Alle anderen Indizes sind entweder fertig oder stehen noch aus, werden jedoch nicht ausgeführt. Das Hauptproblem scheint bei den Suchindizes zu liegen.

Die Anzahl der Zeilen in der catalogsearch_fulltextDB-Tabelle ändert sich nicht. Ist dies ein Hinweis darauf, dass der Suchindex nicht mehr ausgeführt wird?

In dem var/locksOrdner haben wir die folgenden Dateien:

index_process_1.lock
index_process_2.lock
index_process_3.lock
index_process_4.lock
index_process_5.lock
index_process_6.lock
index_process_7.lock
index_process_9.lock

Was bedeutet die Existenz dieser Dateien eigentlich? Welchen Effekt hätte das Löschen?

Für das, was es wert ist, verwenden wir das Mirasvit Advanced Search Pro-Modul, das Sphinx verwendet. https://mirasvit.com/magento-extensions/magento-sphinx-search.html

Antworten:


3

Ich bin nicht sicher, wie das Sphinx-Modul funktioniert, aber Sie möchten möglicherweise in jedes von Ihnen eingerichtete Attribut gehen und sicherstellen, dass Sie keine unnötigen Attribute festlegen, die in die Schnellsuche aufgenommen und / oder für das Frontend usw. sichtbar sind.

*.lockDateien in ihrer vereinfachten Form sind nur eine Möglichkeit, vorhandene laufende Prozesse zu verfolgen, sodass alle anderen Versuche, sie auszuführen, während einer ausgeführt wird, verhindert werden. Wenn Sie wissen, dass kein Prozess ausgeführt wird, können Sie diese Dateien beim erneuten Indizieren sicher löschen. Jede schwerwiegende Ausnahme kann dazu führen, dass sie verweilen. Es ist jedoch normal, die Sperrdateien anzuzeigen.

Wenn Sie ein Modul eines Drittanbieters verwenden, würde ich die Ursache vermuten, warum die Tabelle nie größer wird. Möglicherweise möchten Sie sich an die Eigentümer des Moduls wenden, um weitere Informationen zu erhalten, da anscheinend die meisten Ihrer Probleme darauf zurückzuführen sind.


Vielen Dank. Soweit wir wissen, gibt es kein grundlegendes Problem mit dem Suchmodul, da der Suchindex manchmal beendet wird. Kürzlich haben wir der Website weitere Produkte hinzugefügt, und es ist, als ob ein Bruchpunkt erreicht wurde, an dem die Website die Indizierung der Suche nicht mehr bewältigen kann. Wir haben versucht, alle durchsuchbaren Attribute zu entfernen, die wir können (wir sind jetzt auf das Nötigste beschränkt).
Sarah

Interessanterweise ist es nicht möglich, eine Suchabfrage auf der Website auszuführen, wenn der Suchindex die Verarbeitung angibt. Wir erhalten eine Magento-Seite "Es ist ein Fehler aufgetreten". Kennen Sie das überhaupt? Das Problem scheint sich auf SELECT-Abfragen in der Tabelle catalogogsearch_query zu beziehen, die nicht abgeschlossen wurden.
Sarah

Vielleicht muss die Tabelle optimiert werden, es ist eine der wenigen Tabellen in Magento, die MyISAM sind.
Überprüfen Sie

Mehr als das. Sie können gesperrte Dateien nicht löschen.
user487772

1
Wir haben in der Tat die Tabellen optimiert und auch die Tabelle catalogogsearch_query abgeschnitten. Dies hat die Indizierung sofort verringert (15 Minuten für die Suchindizierung). Wir haben festgestellt, dass eine Transaktion UPDATE catalogsearch_query SET is_processed = 0während der Indizierung zum Stillstand gekommen ist, zumindest bei einem Versuch! Dies half: magento.stackexchange.com/questions/34910/…
Sarah
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.