Thema: geeignete Datenstrucktur für Suchmaschine

Hi Folks,<P>ich weiß mal wieder, wie so oft, nicht weiter...<P>ich mach da ja immer noch diese Suchmaschiene. Ich wollt die jetzt erweitern, so das man nicht nur nach einem Wort sondern auch nach mehreren Suchen kann. Weiter soll man boolsche Logik einsetzen können. Die Seiten sollen nach Treffer sortiert zurück gegeben werden. Ferner möcht ich auch natürlich noch Meta Zeichen einsetzen könne, aber die bereiten mir nicht das Problem.<P>Das Problem ist folgendes:<P>Ich muß da irgendwie mächtig viele Sachen zwischenspeicher und ich weiß nicht so recht was den Algorithmus angeht. Ich denke ich müßte es so machen:<P>ich speichere die Seiten in einem assoziativen Array. Der Schlüssel ist die Seite. Als Wert hab ich wieder einen Assoziativen Array, der als Wert das Suchwort hat. Inhalt ist ein einfacher Array, in dem ich die Zeilennummer (für NEAR) vergleiche, eine Textpassage für die Ausgabe, und den Seitentitel für die Ausgabe speicher.<P>Über die Länge des letzten Arrays könnte ich dann die Trefferanzahl abfragen.<P>Wenn alles eingelesen ist, dann kann man ja nach belieben vergleichen, sortieren und ausgeben lassen...<P>irgendwie kommt mir das aber ziemlich kompliziert vor. Meine Frage: gibts da nicht eventuell einen einfacherern Weg? Weiß einer wie der Algo von Suchdiensten wie altavista&co gehen?<P>Obwohl ich denke das die es noch einfacher haben, da sie in einer DB suchen und nicht mit den html Seiten direkt zu kämpfen haben...<P>cu, sel.<P>btw:<P>Wie macht ihr das?<BR>Ich verliere so ca. ab Zeil 130 den Überblick...  [img]images/icons/frown.gif" border="0[/img] <BR>Dann sitz ich nur noch vor dem Script und versuch nachzuvollziehen, wozu ich jetzt die und die Variable initialisiert habe. Während ich das versuche, vergesse ich, wieso ich das jetzt eigentlich wissen wollte. Produktiv läuft ab da nur noch ziemlich wenig... Meine ganzen schönen Struktogramme helfen mir da auch nur noch Begrenzt weiter.<P>Gibts da nen gutes Konzept oder so, was man sich zu eigen machen könnte?<p>[ 30.06.2001: Beitrag editiert von: SeleCToR ]

Re: geeignete Datenstrucktur für Suchmaschine

Für AND und OR ists noch relativ einfach: <BR>Für alle ANDs nehm ein MUST-Array, für alle ORs ein OR-Array von verketteten Listen. Für die NEARs wie beim OR. Und das ganze  noch verschachtelbar. Für die NOTs muss es ja nur n Flag sein. <BR>Mit Perl muss das aber noch ganz besonders gut dokumentiert werden, da man sonst fast sofort den Überblick verliert.

mfG whitehouse

3

Re: geeignete Datenstrucktur für Suchmaschine

<BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von whiteheart:<BR>Für AND und OR ists noch relativ einfach: <BR>Für alle ANDs nehm ein MUST-Array, für alle ORs ein OR-Array von verketteten Listen. Für die NEARs wie beim OR. Und das ganze  noch verschachtelbar. Für die NOTs muss es ja nur n Flag sein.<HR></BLOCKQUOTE><P>kannst du nen paar Links nennen die Sich mit so was beschäftigen? <P>Wie ich dich verstehe meinst du das ich die Sortierung meiner Fundstellen nicht nach Seite vornehmen sollte, wie ich es vorhatte, sondern je nach dem boolschen Ausdruck in einer anderen Datenstrucktur apspeichern sollte?<P>Also die Seite durchsuchen, Treffer nur Temporär speicher und gleich auswert ob der Ausdruck passt oder nicht. Nur wenn die Fundstelle auch wirklich nen Treffer ist für die spätere Ausgabe abspeichern...<P>Also nicht wie ich es bisher vorhatte, <P>1. Seite Zeilenweise durchsuchen<BR>2. wenn Treffer abspeichern<P>3. Ganz zum Schluss alle Treffer auswerten.<P>Sondern eher so:<BR>1. Seite nach allen Wörtern durchsuchen<BR>2. Wenn treffer mit boolscher Logik übereinstimmen Abspeichern.<BR>3. Ausgeben der Seiten.<P> <BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><HR><BR>Mit Perl muss das aber noch ganz besonders gut dokumentiert werden, da man sonst fast sofort den Überblick verliert.<HR></BLOCKQUOTE><P> [img]images/icons/frown.gif" border="0[/img] Das mein ich ja!