Bug #1043

Textsuche in Logs fehlerhaft

Added by mic@ about 2 years ago. Updated over 1 year ago.

Status:erledigt% Done:

100%

Priority name:2 mittel
Assignee:following
Target version:Version 3.1.5
Ticket Referenz: Kategorien:suche logs

Description

Ich hatte dieses Log vom User "Hemicellulose" gesehen im Listing:

  1. Diesen Cache hatte ich bisher nur auf GC geloggt (s.u.).
  2. Der Vollständigkeit halber möchte ich den Logeintrag aber nachholen ...

Quelle http://www.opencaching.de/viewcache.php?wp=OCCDCF / "Waldspielplatz Klövensteen"

In diesem Log kommt ja das Wort >Vollständigkeit< vor.
Aber wenn ich nun nach Text in Logs suche, wird mir dieser Treffer bzw. dieses Listing nicht angezeigt?!?!

Associated revisions

Revision 0f4c5479
Added by following almost 2 years ago

rewritten fulltext index updating; updates #1043

Revision abc4377a
Added by teiling88 almost 2 years ago

Merge pull request #622 from following5/1043-logsearch

rewritten fulltext index updating; updates #1043

History

#1 Updated by teiling88 about 2 years ago

  • Assignee set to nlubisch
  • Target version set to Version 3.1.3

#2 Updated by nlubisch about 2 years ago

  • Status changed from neu to in Arbeit

#3 Updated by nlubisch about 2 years ago

  • Status changed from in Arbeit to erledigt
  • % Done changed from 0 to 100

Meinen Tests zufolge, funktioniert die Suche nur bei nicht archivierten Caches.
Veröffentlichte Caches tauchen mit identischer Beschreibung bei der Suche nach dem Wort im Cache Log "Vollständigkeit" auf.

#4 Updated by mic@ about 2 years ago

Man kann ja bei der Suche...
https://www.opencaching.de/search.php

...oben angeben, ob auch das zu suchende in archivierten Caches gesucht werden soll.
Wenn man also den Haken entfernt, also archivierte Caches NICHT ausblendet, und
dann nach "Vollständigkeit" in Logs sucht, dann sollte eigentlich dieses Log hier
gefunden werden...

https://www.opencaching.de/viewcache.php?cacheid=155786&log=A#log1074693

...tut es aber leider nicht!

#5 Updated by teiling88 about 2 years ago

  • Status changed from erledigt to offen
  • Target version changed from Version 3.1.3 to Version 3.1.4
  • % Done changed from 100 to 0

#6 Updated by nlubisch about 2 years ago

@Michael: Ich hab gerade nochmal intensiv bei mir lokal probiert dein Problem nachzustellen. Ob “Cache ausblenden > Archivierte“ Angehakt oder nicht und Cache veröffentlicht oder archiviert - ich kann bislang keinen Fehler feststellen obwohl ich es auf der Liveseite ebenfalls nachvollziehen kann. Kannst du deine Suche nochmal ausfüllen und abschicken und mir hier die komplette URL zukommen lassen?

Vielleicht finde ich noch etwas was ich anders mache wie du.

#7 Updated by nlubisch about 2 years ago

  • Status changed from offen to in Arbeit

#8 Updated by following almost 2 years ago

  • Kategorien set to suche logs

Ich konnte das Problem eben sowohl auf www.opencaching.de als auch auf test.opencaching.de und meinem Entwicklersystem reproduzieren. Der Testserver und mein Entwicklersystem (identische Daten) lieferten insgesamt 25 Treffer, www.opencaching.de mit denselben Sucheinstellungen nur 17 Treffer!

Dann habe ich auf meine Entwicklersystem den Suchindexeintrag für das betreffende Log (ID 1074693) neu erzeugt, und nun waren es plötzlich 26 Treffer - einschließlich des Caches "Waldspielplatz Klövensteen".

Hab weitere Wörter getestet, mit und ohne deutsche Umlaute, aber die waren alle ok.

Für die weitere Diagnose bräuchte ich einen Dump der Tabellen search_index und search_index_times vom Produktivserver, und das Ergebnis dieser Abfrage:

SELECT id,last_modified FROM cache_logs

@teiling88: Kannst du mir die drei Tabellendumps zusenden oder irgendwo bereitstellen? Sind alles unsensible Daten, die man problemlos veröffentlichen kann.

#9 Updated by following almost 2 years ago

Bei #1020 ist das Problem auch nochmal aufgefallen.

Wäre nett wenn ich die drei DB-Dumps bekomme, um nach der Ursache forschen zu können.

#10 Updated by following almost 2 years ago

  • Assignee changed from nlubisch to teiling88

Ich weise dir das mal zu wegen Datenbankabfrage OC-Produktivserver, danach bitte an mich. :)

#11 Updated by teiling88 almost 2 years ago

  • Target version changed from Version 3.1.4 to Version 3.1.5

#12 Updated by teiling88 almost 2 years ago

  • Assignee changed from teiling88 to following

#13 Updated by following almost 2 years ago

  • Assignee changed from following to teiling88

Das war nun die unwichtigste von den drei angeforderten Tabellen. ;)

Die Daten bitte wenn möglich als Dump, nicht als formatierte Ausgabe einer Query - dann lässt sich das direkt wieder an MySQL/MariaDB verfüttern. Geht im phpMyAdmin mit "Exportieren", oder mit mysqldump.

#14 Updated by teiling88 almost 2 years ago

  • Assignee changed from teiling88 to following

-> und das Ergebnis dieser Abfrage:

hast Du erhalten.

-> Die Daten bitte wenn möglich als Dump

hast Du auch erhalten. Im Archiv ist noch ein Archiv...

#15 Updated by following almost 2 years ago

Alles klar, nun hab ich's gefunden.

#16 Updated by following almost 2 years ago

  • Priority name changed from 1 niedrig to 2 mittel

#17 Updated by following almost 2 years ago

Hash "Vollständigkeit" = 2006368161 (OCCDCF, cacheid 155786, logid 1074693)

Hash "KnallKopfKommando" = 1268944419 (OCBBFE, cacheid 151223, logid 1151343)

Auf dem Testsystem insgesamt 42 Logwort-Hashes für Cache 155786, auf dem Produktivsystem 17 - obwohl es bei letzterem zwei Logs mehr sind.

#18 Updated by following almost 2 years ago

Der Fehler liegt hier. Die Funktion war so gedacht, dass sie die Indexeinträge für ein einzelnes Objekt - z.B. ein einzelnes Log - löscht, bevor dieses neu indiziert wird. Tatsächlich löscht sie aber den gesamten Index für alle Logs dieses Caches. Geht auch gar nicht anders, da dieser Index - zur Vermeidung von Redundanz - nur als Gesamtmenge für alle Logs des Caches vorhanden ist.

Im Ergebnis funktioniert die Volltextsuche in Beschreibungen, Bildtiteln und Logs jeweils nur bei dem neuesten Objekt: Der zuletzt bearbeiteten Beschreibung, dem zuletzt hochgeladenen oder geänderten Bild und dem zuletzt eingestellten oder editierten Log. Alle anderen fehlen im Suchindex. Das war offenbar schon immer so - die Volltextsuche für alles andere als den Cachetitel hat noch nie richtig funktioniert.

Um das Problem zu beheben, muss die Logik zum Indizieren von Beschreibungen, Bildern und Logs überarbeitet werden.

Der derzeitige Suchindex belegt ca. 400 MB Speicherplatz und verteilt sich wie folgt:

  • 6 Mio. Wörter in Cachebeschreibungen
  • 1,6 Mio. Wörter in Logs
  • 0,2 Mio. Wörter in Cachenamen
  • 0,06 Mio. Wörter in Bildtiteln

Durch den Bugfix erhöht sich die Zahl der Cachebeschreibungseinträge um ca. 5%, die der Bildtitel-Einträge um ca. 50% und die der Logeinträge um ca. 1270%. In der Summe sind das rund 1 GB zusätzliches Datenvolumen zu den bisher vorhandenen schätzungsweise 1,5-2 GB. Das wird spürbar sein, aber verkraftbar. :-)

Der Indexneuaufbau würde einige Stunden dauern, kann aber problemlos im laufenden Betrieb erfolgen.

#19 Updated by following almost 2 years ago

Ein weiterer Bug an gleicher Stelle: Beim Löschen von Beschreibungen, Logeinträgen oder Bildern blieben die Texte im Suchindex. Also gelöschte Texte wurden weiter gefunden.

#20 Updated by following almost 2 years ago

  • Status changed from in Arbeit to im Test
  • % Done changed from 0 to 90

#21 Updated by following over 1 year ago

  • Status changed from im Test to erledigt
  • % Done changed from 90 to 100

Also available in: Atom PDF