Hi!
Kannst Du einen Entwurf angeben, wie man das als Anwender bedienen soll? (Eingabefelder für Start- und Enddatum, Defaultwerte, welche Syntax zur Datumseingabe, ggf. JavaScript-Funktionen
Tja, wenn ich mir <../../sfarchiv/src/idxbsp.txt> so anschaue, ist das mit dem Datum gar nicht so einfach. Die einzige Zeitangabe, die dort steht, ist das Quartal im Dateipfad. Tja, was machen wir denn da? Wenn wir wirklich eine feinere Zeitraumbestimmung machen wollen, brauchen wir auf jeden Fall die Datums-Information. Also Indexdatei neu aufbauen? Moeglich, aber ungern. Schlage vor: Ich habe schonmal eine extra Thread Database aufgebaut (als ich die statistischen Auswertungen fuer http://www.atomic-eggs.com/selfspezial/ gemacht habe). Diese enthaelt diverse Informationen, unter anderem auch Datum eines jeden Postings. So muesste man erst diese DB durchlesen, um anhand des Datums ein zulaessiges Dateinamen/Ankernamen-Bereich herauszufinden, und danach wird dann in dem Bereich die eigentliche Suche durchgefuehrt.
Aber zurueck zu dem Bedienungsentwurf: Ich denk mal drueber nach. *g*
Mehrere Suchvorgänge in mehreren Teilobjekten eines Postings sind nicht wirklich schlimm. Bisher speichert der "Tokenizer" eine Liste von Suchbegriffen mit Flag, die dann vom "Matcher" sequentiell bis zum Scheitern ausgewertet werden soll; jeweils auch noch das Suchobjekt abzuspeichern und auszuwerten ist keine besondere zusätzliche Schwierigkeit.
Ok, ich nehm das mal so hin. Ich hab mir Deinen Tokenizer-Teilthread noch nicht durchgelesen. War mir gestern abend zu hoch und heute hab ich nicht soo viel Zeit (was zwangslaeufig unglaubwuerdig klingt, wenn man sich die Groesse diese Postings ansieht *g*).
(konsistent zu meinem Tokenizer würde ich "+subject:perl +subject:timeout +text:fork" vorschlagen - gefällt Dir das auch?)
Yepp, is ok fuer mich. :-)
mag aber für andere Benutzer vielleicht (zu?) kryptisch aussehen.
Ja, koennte sein.
Nun, eigentlich macht man das ja so: Die Search-Engine bekommt in jedem Fall einen String wie oben verabreicht, der dann geparst und verarbeitet wird. Dies stellt das Backend dar, auf das von unterschiedliche Stellen, aber immer auf die gleiche Weise zugegriffen werden kann. Diese unterschiedlichen Stellen sind de facto 1. ein Front-End in HTML und 2. der Query-String (so wie jetzt auch schon). Jetzt muss man nur irgendwie das Frontend so hinkriegen, dass das diesen String auch ordentlich zusammenbaut. Und da ist das Problem: So was geht in meiner humble-erster-blick-opinion nur mit JavaScript vernuenftig. Aber natuerlich muss das auch ohne JS bedienbar sein, oder besser voellig ohne JS auskommen. Also vielleicht als HTML-Frontend eine Seite, in der man wahlweise 1. selber den Requeststring reinhackt, oder 2. eben nur begrenzte Moeglichkeiten hat, die man in diversen Formularfelden nutzen kann, und deren Daten dann serverseitig zu dem String zusammengebastelt werden. Ok, das war dannn also meine humble-zweiter-blick-opinion. ;-)
Das zu parsen ist kein großes zusätzliches Problem, denke ich.
Man muß dem Benutzer allerdings beibringen, daß dann der ":" genau wie das Leerzeichen ein Meta-Charakter ist, der nur noch innerhalb eines Strings als Suchzeichen behandelt wird ... ist das vertretbar? Die *einfachen* Sucheingaben werden dann leider kryptischer ...
Darueber denk ich ein andermal nach. Muss jetzt erstmal weiterarbeiten...
Noch was: Die Indexdatei trennt die einzelnen Felder mit dem Pipe-Zeichen (). Wenn jetzt aber jemand in Text oder Titel oder sonstwo so ein Zeichen eingibt (so wie ich gerade), fliegt das split auf die Schnauze. Und tatsaechlich hatte schon mal irgendjemand ein in seinem Namen verwendet! Noch oefter kommt es im Body vor, wenn man in JS ueber die Oder-Verknuepfung redet. Genau das Problem hatte ich uebrigens auch, als ich fuer mein Statistikscript jene Database aehnlich dieser Indexdatei aufgebaut habe. Dort habe ich auch das als Trennzeichen verwendet, und deshalb bereits bestehende durch \p maskiert, und \ wiederum durch \. Bis jetzt hatte ich es aber noch nicht noetig, diese automatisch zurueckzukonvertieren, was mit RegExps imho nicht ganz einfach ist. (Man nehme als Beispiel nur mal eben diesen Absatz.)
Soweit erstmal
Calocybe
P.S. Den Rest dieses Threads muss ich mir dann wohl im Archiv angucken.