Nino: Suchdatei - was ist zu beachten

Hallo liebes Forum,

ich bin dabei meine Homepage neu einzurichten.
Nun möchte ich für die spätere Verwendung eine kleine Suchdatei schreiben, die Informationen für ein paar Bereiche ausspucken kann. Halt eine übliche Suche.
Da ich noch nie dazu kam, eine richtige Suchdatei zu schreiben, stellt sich mir nun die Frage, worauf ich bei einer solchen Suchdatei achten muss.
Ich meine damit, ob es bestimmte Algorithmen gibt, die eine Art "Relevanz" darstellen können oder gibt es bekannte Sicherheitslücken (außer XSS-Lücken...)?
Google brachte mir keine brauchbaren Ergebnisse, darum dachte ich mir, dass die Profis die hier unterwegs sind, wohl genug Ahnung von der Materie haben, um mir das zu erläutern. :)

Liebe Grüße,
Nino Schindler
http://www.nino-schindler.de

  1. Hi,

    Da ich noch nie dazu kam, eine richtige Suchdatei zu schreiben, stellt sich mir nun die Frage, worauf ich bei einer solchen Suchdatei achten muss.
    Ich meine damit, ob es bestimmte Algorithmen gibt, die eine Art "Relevanz" darstellen können oder gibt es bekannte Sicherheitslücken (außer XSS-Lücken...)?

    Was ist eine Suchdatei? Meinst Du ein in php (Deine gewählte Kategorie)  geschriebes Script, das Daten selectiert und ausgibt?

    Google brachte mir keine brauchbaren Ergebnisse, darum dachte ich mir, dass die Profis die hier unterwegs sind, wohl genug Ahnung von der Materie haben, um mir das zu erläutern. :)

    Wie soll Dir einer was erläiutern, wenn Dein Problem unbekannt ist? Es kommt doch ganz darauf an, aus welchem Grunddatenstamm Du etwas suchen willst?

    Beispiel: Liegen Textdateien vor und Du willst daraus suchen? Suchst Du in einer Datenbank? Das macht doch riesige Unterschiede.

    Wie soll Dir denn einer helfen, wenn er Dein Problem nicht kennt?

    Gruß, Blume

    1. Huhu,
      sry ging grad etwas hektisch zu...
      Ja, ich wollte ein Suchformular bereitstellen, dass an ein PHP-Script postet. Dieses soll Daten aus einer Datenbank auslesen und ausgeben.

      Was ist eine Suchdatei? Meinst Du ein in php (Deine gewählte Kategorie)  geschriebes Script, das Daten selectiert und ausgibt?

      Ja, genau das meinte ich.

      Beispiel: Liegen Textdateien vor und Du willst daraus suchen? Suchst Du in einer Datenbank? Das macht doch riesige Unterschiede.

      Es geht um eine Datenbank - MySQL.

      Mir ging es ja jetzt nur im Allgemeinen darum, ob es bestimmte Dinge gibt, die ich beachten muss, wenn ich ein solches Script bereitstelle.
      Und, ob ich, wenn ich Daten aus der Datenbank auslese, mehrere Anfragen starten muss um bspw. verschiedene Ergebnisse (z.B. "Volltreffer" (genauer Wortlaut), "Annähernd übereinstimmend" (Teile vom Wortlaut wurden gefunden), "Ähnliches Ergebnis" (Keine Übereinstimmung, ähnliche Ergebnisse werden gelistet)) zu erhalten...?

      Vielleicht kennt jemand von euch ja ein gutes Tut, welches ich durchstöbern könnte.

      Liebe Grüße,
      Nino Schindler
      http://www.nino-schindler.de

      1. Moin!

        Vielleicht kennt jemand von euch ja ein gutes Tut, welches ich durchstöbern könnte.

        php bar: Volltextsuche

        Tommi

      2. Hi!

        Es geht um eine Datenbank - MySQL.
        Mir ging es ja jetzt nur im Allgemeinen darum, ob es bestimmte Dinge gibt, die ich beachten muss, wenn ich ein solches Script bereitstelle.

        Wenn du so allgemein fragst, kann man nur allgemein antworten, dass du wie üblich darauf achten musst, dass alles fehlerfrei und möglichst robust gegenüber Fehlersituationen programmiert ist.

        Ich meine damit, ob es bestimmte Algorithmen gibt, die eine Art "Relevanz" darstellen können oder gibt es bekannte Sicherheitslücken (außer XSS-Lücken...)?

        XSS kann bei der Ausgabe der Suchergebnisse passieren. Man kann dabei aber nicht von "bekannten Sicherheitslücken" sprechen, denn das bezeichnet ja festgestellte Lücken in "fertigen" Programmen. Du hingegen wirst erst noch schreiben, und die Lücken, die du einbauen wirst, kennt heute noch keiner. Wenn du Injection-Lücken jedweder Art fürchtest, dann solltest du dir das Prinzip anschauen, wie solche Lücken entstehen und was man macht, damit das nicht geschieht: Kontextwechsel erkennen und behandeln.

        Und, ob ich, wenn ich Daten aus der Datenbank auslese, mehrere Anfragen starten muss um bspw. verschiedene Ergebnisse (z.B. "Volltreffer" (genauer Wortlaut), "Annähernd übereinstimmend" (Teile vom Wortlaut wurden gefunden), "Ähnliches Ergebnis" (Keine Übereinstimmung, ähnliche Ergebnisse werden gelistet)) zu erhalten...?

        MySQL bietet keine Funktionalität zu Ähnlichkeitssuchen an. Es gibt zwar SOUNDEX(), aber das ist weder für die deutsche Sprache vorgesehen noch geeeignet. Du kannst nur mit oder ohne Muster vergleichen, also LIKE plus die Jokerzeichen % und _, sowie reguläre Ausdrücke. Auch die Volltext-Suche (Full-Text Search) könnte dich interessieren.

        Lo!

        1. Hallo,

          XSS kann bei der Ausgabe der Suchergebnisse passieren. Man kann dabei aber nicht von "bekannten Sicherheitslücken" sprechen, denn das bezeichnet ja festgestellte Lücken in "fertigen" Programmen. Du hingegen wirst erst noch schreiben, und die Lücken, die du einbauen wirst, kennt heute noch keiner. Wenn du Injection-Lücken jedweder Art fürchtest, dann solltest du dir das Prinzip anschauen, wie solche Lücken entstehen und was man macht, damit das nicht geschieht: Kontextwechsel erkennen und behandeln.

          Ich nannte XSS als Beispiel damit man ungefähr weiß, was ich meine, aber Danke für die Info. :)

          MySQL bietet keine Funktionalität zu Ähnlichkeitssuchen an. Es gibt zwar SOUNDEX(), aber das ist weder für die deutsche Sprache vorgesehen noch geeeignet. Du kannst nur mit oder ohne Muster vergleichen, also LIKE plus die Jokerzeichen % und _, sowie reguläre Ausdrücke. Auch die Volltext-Suche (Full-Text Search) könnte dich interessieren.

          Nach so einer Antwort hatte ich gesucht. :)
          Also werde ich mich nun noch etwas mit LIKE, %, _, Regulären Ausdrücken und der Volltext-Suche auseinandersetzen.
          Vielen Dank.

          Liebe Grüße,
          Nino