OPUS4 / opus4-search

OPUS 4 Solr search.
Other
1 stars 4 forks source link

XML Cache für Export von Suchergebnissen nicht effektiv #79

Open j3nsch opened 2 years ago

j3nsch commented 2 years ago

In der aktuellen Suchimplementation wird für jedes gefundene Dokument, das entsprechende Opus_Document Objekt erzeugt. Das war vor der Umstellung nicht der Fall. Vorher wurde die Anzeige der Suchergebnisse aus den von Solr gelieferten Informationen bewerkstelligt.

Kurzfristig werde ich diese neue Eigenschaft nutzen, um ein paar Tickets zu erledigen, die dadurch einfacher werden. Bei der Anzeige von 10 Dokumenten spielt diese Änderung keine Rolle. Langfristig muss überlegt werden, ob dies wieder geändert werden muss und alle notwendigen Informationen aus dem Index kommen sollten.

Die Änderung wirkt sich unter Umständen deutlich bei der Anzeige von vielen Suchergebnissen auf einmal und insbesondere beim Export von Suchergebnissen aus. Beim Export werden mehr Informationen benötigt, als vom Index geliefert werden. Um die kostspielige Instanzierung aller Dokumente zu vermeiden wurde der XML-Cache eingeführt. Das XML für ein Dokument wird aus dem Cache geholt und die Erzeugung des Objekts vermieden. Da die Objekte jetzt immer erzeugt werden, wird ein Teil des Geschwindigkeitsgewinns durch den Cache wieder zunichte gemacht.

Evtl. ändert sich die Situation später wieder, wenn wir für die Speicherung der Metadaten auf ein anderes System umsteigen sollten. Daher wird dieses Ticket vermutlich nach hinten geschoben werden, aber vorher müssen wir wissen wie stark sich die Änderung auswirkt.

j3nsch commented 2 years ago

Hallo, OPUS 4 erlaubt den Export von Suchergebnissen und auch die Anzeige von mehr als 10 Ergebnissen in der Anzeige. Könnt Ihr bitte die Zeiten zwischen einem solchen Export einer großen Suche, gerne alle Dokumente, unter 4.4.5 und 4.5+ (z.B. 4.6) vergleichen? Vermutlich werde ich in der nächsten Zeit nichts ändern, aber es wäre sehr wichtig zu wissen wie groß die Auswirkungen sind. Vielen Dank!

Letztendlich betrifft es auch den Export von Suchergebnissen als BibTeX, CSV usw. könnte also wirklich unter Umständen relevant sein.

j3nsch commented 2 years ago

Das Browsing basiert auch auf der Suche, aber da werden eher die Facetten verwendet. Das sollte durch diese Änderung nicht beeintroffen sein.

j3nsch commented 2 years ago

Wir haben unterschiedliches Verhalten bei großen und mittleren Mengen festgestellt.

Mittlere Menge von Dokumenten - 4306 Dokumente Zeiten beim Export für opus4-zib - alle Dokumente (4306) Durchschnittswert für mehrere Läufe: Vers. 4.4.5 - 20 sec Vers. 4.5 - 22 sec Vers. 4.6 - 22 sec

Große Anzahl von Dokumenten - 41342 Dokumente Zeiten für opus4-bamberg Vers. 4.5 - knapp 4 Minuten Vers. 4.4.5 - konnten wir nicht durchführen

Für den Export der großen Instanz mussten wir in der php.ini Parameter erhöhen: max_execution_time = 240 memory_limit = 8096M

j3nsch commented 2 years ago

Vielen Dank. Das ist spannend. Der Zuwachs bei einer mittleren Menge ist geringer als befürchtet. Interessant ist, dass der große Export bei 4.4.5 nicht funktioniert hat. Es wäre interessant zu wissen woran das liegt. Vielleicht habe ich das Verhalten der neuen Version noch nicht richtig verstanden.

Sehen die Ergebnisse, also das XML vom ZIB für 4.4.5 und 4.6 in etwas gleich aus? Sind die Daten gespeichert etwas gleich groß? Nur zur Sicherheit, nicht das wir bei der neueren Version noch andere Dinge geändert haben.

j3nsch commented 2 years ago

Die Dok-IDs werden im XML in 4.4.5 und in 4.6 in unterschiedlicher Reihenfolge ausgegeben. In 4.4.5 werden die Dok-Ids nach der Anzeige aller Dokumente sortiert. In 4.6 werden die Dok-Ids aufsteigend nach der Dok-Id sortiert.

Der Inhalt der exportierten Metadaten pro Dokument ist der Gleiche.

Die Größe ist der XML-Dateien unterscheidet sich ein wenig. 4.4.5 - 7.483 KB 4.6 - 7.394 KB

Der große Export von Bamberg hat aufgrund der zu geringen Parameter in der PHP.ini nicht funktioniert. Wir haben die Instanz nur auf der Produktion unter 4.4.5. Dafür haben wir nochmal mit 4.6 und Bamberg getestet - Die Zeit war identisch mit der 4.5.

j3nsch commented 2 years ago

Danke. Das klingt so als ob wir das erst einmal ignorieren können. Wenn Ihr irgendwann auf 4.6+ umgestiegen seit, behaltet mal bitte ein paar von den 4.4.5 Instanzen damit wir später noch Vergleiche durchführen können.