Moin nochmal!
Nimmt man eine Verweisliste je Schlagwort anstelle je eines Eintrages pro Posting, in dem das Schlagwort vorkommt, dann dürfte sich der Faktor auf etwa 2 reduzieren. Der Schwanzabschneider hätte dabei etwas mehr Arbeit, da er nicht mit append arbeiten kann, sondern einfügen muß. Dafür muß ein Suchlauf nicht die ganze Datei scannen, sondern kann mit Auffinden des gesuchten Wortes den Lesevorgang für das betreffende Wort abbrechen.
Faktor 2 würde ich auch schätzen, zumal einfache Wörter wie "und" oder "Schwanzabschneider" pro Artikel mehrfach vorkommen können und dann für den jeweiligen Artikel nur einmal gelistet werden müssen. Ich verstehe aber nicht, warum der Schwanzabschneider nicht inkrementell d.h. mit Append arbeiten können soll. Die Einträge aus den neu hinzugekommenen Archivbeiträgen können doch einfach hinten an die jeweiligen Index-Dateien angehängt werden - nebenbei bewirkt dies, daß die Suchergebnisse nach wie vor in chronologischer Reihenfolge ausgegeben werden (könnte man dann in der Antwortseite noch umdrehen, so daß die aktuellsten Antworten immer oben erscheinen).
Bitte ? Einige hundert fopen() pro Suchvorgang ? Dem kann ich nicht folgen. Pro Suchbegriff wird exakt eine Indexdatei geöffnet. Einzig bei der Phrasensuche kommen noch die Zugriffe auf die Threaddateien aus der Schnittmenge der Treffer im Index hinzu.
Genau - auch bei Kontrolle auf Groß/Kleinschreibung usw. wären noch ein paar zusätzliche Zugriffe nötig - unter Umständen können da natürlich schon mal 100 oder mehr fopen() zusammenkommen, was aber immer noch deutlich schneller sein sollte als die bisherige Methode...
Bis dannunwann
Andreas