Suchergebnisse temporär speichern

Sturmrider

Erfahrenes Mitglied
Hallo zusammen :)
Kann ich irgendwo nachlesen wie hier die Forum-Suche funktioniert? Mir ist aufgefallen, dass die Suchergebnisse wohl irgendwo zwischengespeichert werden, dass nicht mit jedem mal Laden der Sucherergebnis-Seite eine neue Suchanfrage abgeschickt wird.
Wie genau wird das in der Datenbank geregelt? Doch nicht in etwa so, oder:
Code:
SuchanfrageID | IDs der Artikel | letzter Aufruf
1             |    2_394_231... | 1304... ~ 10Min
Dieses Beispiel hat nämlich eine gravierende Schwäche, wenn eine Suche sehr viele Ergebnisse liefert, ist es sehr umständlich immer eine Spalte aus der DB zu lesen, wo immer ALLE Suchergebnisse drin stehen (Normalisierung wäre hier ja leider ineffektiv). Durch die Seitenaufteilung braucht man eh nur einen Bruchteil. Und dann kommt noch die Sache mit explode() dazu, um die ArtikelIDs zu trennen und den Rest dazu aus der DB zu holen... alles in allem stelle ich mir das immernoch zu ressourcenlastig vor...

Ich würde mich über effektive Lösungsansätze freuen :rolleyes: (ich habe auch bereits einen Mod gefragt, doch auch dieser konnte mir in diesem Punkt leider nicht weiter helfen :( )
 
oh, ich wusste nicht, dass das OpenSorce ist :rolleyes:
Ich hoffe mal, dass das hier in diesem Forum kein vBulletin Code Hacking ist...
Ich würde mich trotzdem noch über Ansätze freuen :)
(wenn ich herausgefunden habe, wie das im vBulletin funktioniert, werde ich es hier posten)

EDIT: Die Sache hat sich soeben erledigt <<" es IST KEIN OpenSorce und ich zahle bestimmt keine 79€ (1 Jahres-Lizenz), um nur mal eben in den Code zu schauen
 
Zuletzt bearbeitet:
Hm, scheinbar kostet das doch Geld. Komisch, mir war als wäre das Teil mal für umsonst gewesen.
 
Ich denke du verwechselst das mit dem BurningBoard, welches eine Zeit lang umsonst war. Oder dem OpenSorce-Projekt phpBB (stimmt, in dem ich jetzt mal nachschaue)
 
Soweit ich das verstanden habe, macht es das phpBB folgendermaßen:
Es werden in den Tabellen die Suchanfragen festgehalten
Code:
search_key | search_time | search_keywords | search_authors 
-----------------------------------------------------------------
md5-Hash   |   timestamp | anfrage als Blob|  Autoren mit dieser Suchanfrage (ebenfalls Blob)
Über diese wird geprüft ob sich die Suchergebnisse noch im Server-Cach befinden und ausgelesen bzw. geprüft ob sie noch vollständig sind und gegebenenfalls neu in den Cach geladen (mit einer neuen Suchanfrage). Alles in allem scheint das eine ziemlich komplizierte (und mir vollkommen neue) Sache zu sein. Ich vermute das Board arbeitet mit der InnoDB, wo Daten zunächst gecached werden, bevor sie auf die Fastplatte geschrieben werden.

Der ganze Themenkomplex fällt wohl unter PHP-Caching, wovon ich jedoch noch absolut keine Ahnung habe? ein Stichwort wäre wohl ob_get_contents() ...
Kann mir jemand eine gute Seite, Tutorial o.ä. nennen, womit ich mir aneignen kann, wie ich mit PHP-Caching arbeite?
(man findet zwar viel bei Google, aber das sind alles sehr spezielle Sachen und kaum für den Anfänger geeignet)
 
Zurück