hi!
Stefan: hast du zufällig irgendwelche Statistiken darüber, wie oft die Suche zb. pro
Minute aufgerufen wird?
Nicht so wild: 4275 mal im August, macht 157 mal am Tag und 0,1 mal pro Minute.
Hm, dann sollte es doch nicht so schlimm sein. Angenommen, man setzt 50 bis 100 Ergebnisse auf jede Seite. Realisiert man das ganze mit einer Bewertung, stehen sowieso die besten Treffer ganz oben. Bis jemand diese Treffer erstmal durchgesehen hat und erneut die Suchmaschine anwirft - wenn er es überhaupt tut - vergeht erstmal einige Zeit. Es läuft also in den meisten Fällen sowieso nur eine oder selten zwei Instanzen der Suchmaschine - dürfte die Performance nicht zu sehr belasten.
Zur Bewertung undanschließenden Sortierung: so wie ich es Michael vorgeschlagen habe, würden für jeden Treffer gespeichert: Autor, Titel, Datum, URL und Beitragsnummer. Das macht vielleicht 100 Zeichen aus. Sortiert werden muss davon nur die Beitragsnummer, um ein Array daraus zu erstellen. Es werden also nicht massenweise Daten im Speicher hin und her geschoben. Die von Michael genannte Zahl (10.000) halte ich bei einer Gesamtzahl von gut 30.000 Nachrichten für übertrieben.
Zur Sortierung: wie gesagt muss nur ein Hash bestehend aus Zahlen sortiert werden. Perl benötigt bei mir zur Sortierung von 300.000 (Komma-)Zahlen im Bereich 0 - 30.000 weniger als 5 Sekunden. Soviel zur Performance der Sortierung.
Nach 100 Treffern die Suche abzubrechen, halte ich nicht für sinnvoll, wenn eine Sortierung nach Bewertung erfolgt, da dann evtl. bessere Treffer verloren gehen. Nachteile hat das für den Server kaum, nur für den Sucher, der - meiner Meinung nach - eher bereit ist, ein paar Sekunden länger zu warten, als bessere Treffer nicht zu erhalten.
bye, Frank!