(ZU DIESEM FORUM) Archivsuche - wie erzeugt ?
Chris Weber
Hallo,
mich würde einfach mal interessieren, wie genau die Forumsarchivsuche funtionniert und/oder es möglich wäre irgendwo den Quelltext zu veröffentlichen.
Chris W.
Hallo,
mich würde einfach mal interessieren, wie genau die Forumsarchivsuche funtionniert und/oder es möglich wäre irgendwo den Quelltext zu veröffentlichen.
Ich weiß es zwar nich so genau, aber ich kann es mir vorstellen. Immer wenn er Schwanzabschneider aufgerufen wird, dann werden Author, und Titel in ne Datei geschrieben, und dazu noch das URL, wo die Nachricht dann zu finden ist. Die Suchmaschienen durchsucht dann halt diese Datei.
Hallo,
mich würde einfach mal interessieren, wie genau die Forumsarchivsuche funtionniert und/oder es möglich wäre irgendwo den Quelltext zu veröffentlichen.
Ich weiß es zwar nich so genau, aber ich kann es mir vorstellen. Immer wenn er Schwanzabschneider aufgerufen wird, dann werden Author, und Titel in ne Datei geschrieben, und dazu noch das URL, wo die Nachricht dann zu finden ist. Die Suchmaschienen durchsucht dann halt diese Datei.
Und wie genau wird diese Datei durchsucht ??
Hi,
mich würde einfach mal interessieren, wie genau die Forumsarchivsuche funtionniert und/oder es möglich wäre irgendwo den Quelltext zu veröffentlichen.
Ich weiß es zwar nich so genau, aber ich kann es mir vorstellen. Immer wenn er Schwanzabschneider aufgerufen wird, dann werden Author, und Titel in ne Datei geschrieben, und dazu noch das URL, wo die Nachricht dann zu finden ist. Die Suchmaschienen durchsucht dann halt diese Datei.
in diesem Fall wohl kaum 'ne URL, weil die Datei ja schon auf dem Server liegt ;-)
Und wie genau wird diese Datei durchsucht ??
open(READ,$datei);
while ($line = <READ>) { if ($line =~ /$suchbegriff/i) { $found = 1; } }
close(READ);
Jedenfalls vom Prinzip her. Die Datei wird eingelesen und zeilenweise dahingehend untersucht (mit Regular Expressions), ob der Suchbegriff darin vorkommt. In dem Fall wird die Datei ausgegeben bzw. verlinkt (hier symbolisch durch "$found=1;" markiert). Das ganze ist natürlich noch wesentlich komplexer, weil mehrere Dateien durchsucht werden, nach Autor, Titel, Text etc. differenziert wird und mehr als nur eine Datei ausgegeben werden soll. Die Basis sollte so aber klar sein, oder?
Cheatah
Hallo Chris,
mich würde einfach mal interessieren, wie genau die Forumsarchivsuche funtionniert und/oder es möglich wäre irgendwo den Quelltext zu veröffentlichen.
Die regelmaessig wiederkehrenden Fragen des Typs "koenntest du mir vielleicht mal den Quelltext..." kenne ich mittlerweile auch. Es bringt nichts, weil die Adressaten meist null Ahnung haben von dem, was da passiert. Denn wenn sie eine haetten, wuerden sie nicht so fragen. Das soll jetzt keine Abfuhr sein, aber Erfahrungen macht man halt.
Deshalb hier nur der Zusammenhang. Programmieren lernen musst du selber. Fragen, die bei Problemen dabei auftauschen, kannst du natuerlich gerne hier stellen.
Also:
(1) Jede Forums-Message stellt, solange sie in der Forumshauptdatei im Thread-Baum vorkommt, eine eigene Datei dar.
(2) Der Schwanzabschneider, den ich alle paar Tage anstosse, schnappt sich den unteren Teil des Thread-Baums, liest die zugehoerigen Messages, und bastelt aus alledem neue Dateien fuers Forums-Achriv. In diesen Dateien ist nicht mehr jede Message eine Datei, sondern nur noch jeder Thread.
(3) Da der Schwanzabschneider eh schon alle Daten "im Kopf" hat, wenn er dieses Werk vollbringt, schreibt er sie nicht nur in die Thread-Dateien des Forums-Archivs, sondern befreit sie zugleich von allem unnoetigen HTML-Ballast und haengt sie an eine Textdatei an, wobei die "Felder", also Autor, Titel, Text usw. durch ein bestimmtes Zeichen, in diesem Fall "", voneinander getrennt werden. Es ist wichtig, dass diese Daten in so einer Datei stehen, denn die Forums-Archivsuche wuerde wahrscheinlich absaufen, wenn sie bei jedem Anstossen alle paar tausend Thread-Dateien durchsuchen muesste.
(4) die Suche durchsucht nur die grosse Textdatei und gewinnt daraus ale erforderlichen Daten, z.B. auch, in welchem Unteranker innerhalb einer Archiv-Thread-Datei ein Suchtreffer vorkommt.
Das jetzt genauer zu erklaeren macht wie oben erwaehnt keinen Sinn. Wenn Du programmieren kannst, weisst du nun, was in etwa die Aufgabenstellung ist, falls du so was selber machen willst.
viele Gruesse
Stefan Muenz
Hallo Stefan,
mich würden 2 details deines (vermutlichen Perl-) scripts interessieren:
(2) Der Schwanzabschneider, den ich alle paar Tage anstosse, ...
stosst du den Schwanzabschneider manuell an oder rennt er automatisch ab, wenn die datei eine bestimmte größe erreicht hat?
(4) die Suche durchsucht nur die grosse Textdatei...
wieviel KB hat diese datei derzeit ca.? Und bei wieviel KB würdest du schätzen ist die grenze, dass es das script noch performance-mäßig schafft?
lg,
robert
Hallo Robert,
stosst du den Schwanzabschneider manuell an oder rennt er automatisch ab, wenn die datei eine bestimmte größe erreicht hat?
Der Schwanzabschneider ist ein CGI-Script. Ein CGI-Script startet nicht von selber, sondern, wenn man es als URL aufruft. Auf deutsch: ich stehe alle drei bis viert Tage so frueh auf, dass ich diesen nicht ganz unkritischen Prozess in jener Stunde starte, wo hier am wenigsten los ist. Ein reines Betriebssystem-Script liesse sich mit der crontab-Funktion unter Linux (BS dieses Servers) zwar automatisch starten, aber das ist mir zu gefaehrlich - ich entscheide lieber selber, wo genau der Schwanzabschnitt erfolgt, und teste hinterher auch lieber erst mal persoenlich, ob alle gefunzt hat. Ich finde solche Scripts geil, aber zu viel Vertrauen schenke ich ihnen deshalb nicht.
wieviel KB hat diese datei derzeit ca.? Und bei wieviel KB würdest du schätzen ist die grenze, dass es das script noch performance-mäßig schafft?
Gute Frage. Derzeit sind es 14MB - die sind bei heutigen Hpochleistungs-PCs mit Linux kein Problem fuer sequentielles Durchsuchen, wenn der Prozess nicht gerade 3 mal pro Sekunde angestossen wird. Da ist durchaus noch Luft. Aber die Datei waechst pro Woche um ca. 300 KB. Irgendwann kommt der grosse Showdown <g>.
viele Gruesse
Stefan Muenz
Hallo Stefan,
Der Schwanzabschneider ist ein CGI-Script. Ein CGI-Script startet nicht von selber, sondern, wenn man es als URL aufruft.
Aha, verstehe. Theoretisch könnte man den schwanzabschneider auch in das script integrieren, das die postings in die hauptdatei schreibt. Er könnte zB. immer dann automatisch aktiv werden, wenn ein user auf "send" klickt und die datei 200 KB erreicht hat. Ist zwar sicherlich auch ein kritischer prozess, aber du würdest dir das frühe aufstehen ersparen ;-)
Gute Frage. Derzeit sind es 14MB -
Wow! Da stellt sich irgendwie die frage, wofür man noch datenbankserver braucht, wenn perl rennt wie ein glöckerl...
lg,
robert
hi!
Gute Frage. Derzeit sind es 14MB -
Wow! Da stellt sich irgendwie die frage, wofür man noch datenbankserver braucht, wenn perl
rennt wie ein glöckerl...
Wer sagt denn, dass man Datenbankserver braucht? Für noch kleinere Datenmengen sicherlich nicht. Wenn die Daten häufiger frequentiert werden, die Datengröße/-satzanzahl weiter steigt oder man eine komfortablere Schnittstelle (SQL) braucht, ist eine Datenbank im Gegensatz zu einer Textdatei doch gar nicht so schlecht.
bye, Frank!
wieviel KB hat diese datei derzeit ca.? Und bei wieviel KB würdest du
schätzen ist die grenze, dass es das script noch performance-mäßig schafft?Gute Frage. Derzeit sind es 14MB - die sind bei heutigen Hpochleistungs-PCs mit Linux
kein Problem fuer sequentielles Durchsuchen, wenn der Prozess nicht gerade 3 mal pro
Sekunde angestossen wird. Da ist durchaus noch Luft. Aber die Datei waechst pro Woche
um ca. 300 KB. Irgendwann kommt der grosse Showdown <g>.
Schau Dir doch dann mal ht:dig http://www.htdig.org an, das ist ne geile, kostenlose Suchmaschine mit Indizierung für Linux.
Gruesse
Philipp