Brauche bitte Tips zum Thema Suchmachine

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Brauche bitte Tips zum Thema Suchmachine

    Hi Leute,
    ich möchte eine Suchmachine für eine Webseite schreiben.
    --> ohne boolsche Algebra, einfacher Zeichenkettenvergleich.

    ...hatte hier im Forum auch schon ne Super Hilfe bekommen.

    Doch ein paar Fragen zur Performance und zum Aufbau einer
    professionellen Suche hätte ich noch.

    Bisher ist mein Plan:
    nach der Eingabe des Suchstrings werden alle Seiten
    eingelesen html_gestrippt und getolowercased um dann
    mit strstr Suchwort und Inhalt zu vergleichen.

    Doch wie schaut es mit der Performance aus?
    (ca. 100 sollen eingelesen und durchsucht werden)

    Wäre da eine Indezierung besser?

    Und wenn ja was wäre da ein Ansatz den ich verfolgen könnte,
    eine Datenbank steht dafür leider nicht zur Verfügung.

    Ich hab leider keine wirklich gute Idee nur einen
    Ansatz mit haken, für die Indezierung:

    Die gesammte Seite wird nach jeder Aktualisierung
    neu geparst.
    - Dabei wird jedes Wort als Schlüssel in einem Array
    gespeichert.
    - Wenn nun ein längeres Wort auftaucht dann ersetzt
    es das kürzere ($index[auto] wird von $index[autobahn]
    ersetzt

    >>> Das Problem ist dann das ich die Schlüssel nicht mehr
    mit Regex ansprechen kann und somit: "auto" nicht mehr
    "autobahn" findet.

    Ich weiss nicht mehr weiter und habe irgendwie das Gefühl
    auf dem Holzweg zu sein.

    Über ein paar Tips bzw. Ansätze würde ich mich sehr freuen,
    nette Grüße, hOk

  • #2
    Also, ein Skript zur "Neuindizierung" hast du ja anscheinend. Wenn nicht: Bau dir eins, das zu jeder zu durchsuchenden Datei 'dateiname.ext' eine Datei 'dateiname.ext.stripped' anlegt, in der du strtolower(striptags(Text)) ablegst.
    Später durchsuchst du dann nur noch die .stripped-Datei

    Es ist sinnvoll, das Datum der idx-Datei mit dem des Originals zu vergleichen, damit nur aktualisierte Dateien neu indiziert werden.
    ----

    Da zu erwarten ist, dass einige Suchbegriffe häufiger vorkommen, kannst du zu den häufigsten die Ergenisse gleich in einer Indexdatei 'index.txt' speichern. Da könntest du für jeden Begriff eine Zeile reservieren; die könnte z.B. so aussehen:

    "Suchbegriff in Anführungszeichen wg. eventueller Leerzeichen" (Anzahl Aufrufe) (Datum letzte Suche) Dateiname_1 Dateiname_2 ... Dateiname_n

    Anzahl und Datum mit rein, um seltener eingegebene Begriffe zu erkennen, und zB bei der Neuindizierung aus der Datei zu entfernen).
    Bei der Neu-Indizierung muss natürlich diese Datei auch aktualisiert werden.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hey vielen Dank, und super Ideen, so
      werde ich das machen....:-)

      viele nette Grüße, hOk

      Kommentar

      Lädt...
      X