Automatik für Suchindex #6566
Comments
Ergänzung: Im Cluster macht die Aktuailisierung der Suche übrigens noch weniger Sinn.... Ein DB Cluster und eine Dateisystem (gluster oder rsync, unison..). Das stellt die Architekur der automatischen Aktualiserung aus unserer Sicht völlig in Frage. |
Hört sich nach einem Feature für https://github.com/terminal42/contao-deferred_search_index an :-) |
Eine Erweiterung mit Abhängigkeit bis 2.11.2 stable macht bei 3.2.2 wohl eher wenig Sinn - oder hat das schon jemand getestet? Sorgt das Modul denn dafür, dass die Automatik im Core deaktiviert wird? |
Nein bisher macht das Modul das nicht so. Könnte aber jemand erweitern, der die Zeit dazu hat ;-) |
+1 |
+1 dass die Suche entkoppelt werden kann/ über eine API aufrufbar ist. Siehe #6183 |
Ich könnte meinem Kunden ohne großen Aufwand sagen, dass er den Suchindex per Backend neu aufbauen muss, wenn er Änderungen vornimmt. Aber ich muss dringend das automatische Update über die Frontendfunktion abschalten können. Wir hatten nach einer Woche Laufzeit der Seite 2,8 Mio Suchworte im Index und das Update durch den Frontendprozess führt zu unzähligen "waiting for table lock" und damit irgendwann zu Timeouts. Nachdem ich tl_search und tl_search_index entleert habe, rennt die Seite wieder. |
@aschempp wirklich erst für 3.3.0? |
@Zeromax das ist sicher kein Bug. |
@Toflar das ist Ansichtssache. Aber wenn aufgrund einer Automatischen Indizierung die Seite für 20 bis 40 Sekunden nicht erreichbar ist. Ist das eine "Fehlfunktion" in Contao und somit ein Bug. Aber egal. Ich werde die Änderungen dann für mich eben in die LTS version portieren. |
Kein Bug :-) Sowas sollte ich mal meinen Kunden erzählen, die täglich zwischen 1.000 und 4.000 Bestellungen über ihre Webseite abwickeln. Da bedeutet jede Sekunde Ausfall Code-Red !! |
Es ist Ansichtssache, richtig. Meine Ansicht: Definitiv kein Bug. :) |
Ich denke deine Ansicht wäre eine andere wenn du einen Kunden hast der dir die Hölle heiß machen würde sobald seine Seite wegen zuvieler Daten nicht ereichbar wäre ;) |
Nein, wäre sie sicher nicht. |
@rightvision ist der Content geheim oder gäbe es die Möglichkeit zu Testzwecken an einen Dump der Suchtabellen zu kommen? |
This might gain some speed (untested):
// Insert values
$objDatabase->prepare("
ALTER TABLE tl_search_index DISABLE KEYS;
INSERT INTO tl_search_index (pid, word, relevance, language) VALUES " . implode(", ", $arrKeys) .
'; ALTER TABLE tl_search_index ENABLE KEYS;')
->execute($arrValues); |
Wie besprochen werden die Seiten in cab4ded nicht mehr direkt indiziert, sondern mittels einer verzögerten Ajax-Anfrage (analog zum Command-Scheduler). |
Warum müssen wir dazu das |
Ja, können wir. Geändert in a90a355. |
Eine der Seiten ist http://www.henstedt-ulzburg.de. Der große Suchindex stammt aus einem extern eingebundenen Service (ZUFISH = Zuständigkeitsfinder Schleswig-Holstein) unter Rathaus ABC der Dienstleistungen (http://www.henstedt-ulzburg.de/abc-der-dienstleistungen.html). Dump kann ich bei Bedarf liefern. |
@rightvision Ich würde gerne ein paar Performance-Tests durchführen. Wäre cool wenn ich deinen Dump nutzen könnte :) |
Ist machbar - schreib einfach eine Mail an info MeinAccountName . de und wir schauen mal, wo ich das ablege... |
So :)
Zusammenfassung: Ich sehe keinen Grund, warum bei dieser Datenmenge (110 MB in |
Wir hatten ja zuerst auch ein Bulk-Insert, oder? |
Phu, wann? Mumble? :D |
Automatische Aktualsierung des Suchindex nach Seitenaufruf im Frontend unterbinden!!
Nach jedem Seitenaufruf belegt mysqld für ca. 20-40 Sekunden über 100% CPU !!! Für große Seiten (wie haben 1,3 Mio Einträge in tl_search_index) ist das untragbar, da oftmals Backend und auch Frontend Timeout. So etwas kann man eigentlich nur über eine CRON-JOB machen. Die Datenbanken sind ok, Ergebnis ist unter MariaDB und MySQL identisch. Contao V3.22.
The text was updated successfully, but these errors were encountered: