Marc Reichelt: MySQL 5: Suche nach Teilwörtern (+Umfrage)

Hallo an alle,

unter http://linux-drivers.net/ möchte ich demnächst eine Linux Hardwaredatenbank publizieren, bei der gestandene Linuxer ihre Hardware eintragen und Linux-Interessierte oder Linux-Benutzer erfahren können, ob ihre Hardware unter Linux laufen wird.

Das grundsätzliche System steht bereits, jedoch fehlt mir noch ein entscheidender Punkt: Die Suche, die sich auf der Startseite befinden wird.

Ich schwanke zwischen zwei Suchmethoden:

1. Suche nach ganzen Begriffen (ohne Teile)
2. Suche auch nach Teilwörtern

Die erste Suche ist performanter, die zweite Suche ausführlicher.

Nun habe ich eine Frage an euch: Was würdet ihr erwarten, wenn ihr auf das folgende Suchformular (PNG-Grafik) antreffen würdet, und nach Hardware unter Linux suchen wollt?

Würdet ihr auch erwarten, dass die Suche euch Resultate liefert, wenn ihr nach Teilbegriffen sucht (beispielsweise "HP Laser" bei "HP -> Color LaserJet 3700")? Oder würdet ihr in Kauf nehmen, dass "HP -> Color LaserJet 3700" nur bei einer Suche nach "HP LaserJet" gefunden wird?
Und wie sieht das bei Teilbegriffen aus, die nicht mit dem Beginn des Wortes beginnen (bspw. "HP Jet")?

Und dann habe ich noch eine Frage an die MySQL-Profis: Wie realisiere ich eine Suche nach Teilbegriffen am Ressourcen-schonendsten?

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
  1. Hi,

    Ich schwanke zwischen zwei Suchmethoden:

    1. Suche nach ganzen Begriffen (ohne Teile)
    2. Suche auch nach Teilwörtern

    Ich würde es am besten finden, wenn du es so ähnlich wie hier bei der Forumssuche machst. Da gibt es eine Checkbox mit "Begriffe als eigenständige Worte behandeln". Dann kann jeder User selber aussuchen was er will.

    Nun habe ich eine Frage an euch: Was würdet ihr erwarten, wenn ihr auf das folgende Suchformular (PNG-Grafik) antreffen würdet, und nach Hardware unter Linux suchen wollt?

    Ich würde erwarten, dass auch Teilausdrücke gesucht werden.

    mfG,
    steckl

  2. Hello Marc,

    hast Du schon genügend Spielgeld für den sprunghaft ansteigenden Traffic beisammen?

    Aber zum Thema:

    Ich würde erwarten, dass

    • der Suchbegriff gesucht wird wie angegeben
    • die Suchbegriffe in genau der angegebenen Reihenfolge gefunden werden, aber ggf,
        mit Wörtern dazwischen
    • eine Phonetische Suche nach dem Suchbegriff "meinten Sie vielleicht..." stattfindet
    • Teilbegriffe des Suchbegriffs beide vorhanden sein müssen, egal welche Reihenfolge
    • auch Treffer gezeigt werden, die nur Teile der Suchworte enthalten nund zwar
        auch in anderer Reihenfolge, als angegeben.

    Je nachdem, wie viel Komfort Du Deinen Besuchern lieferns willst, kannst Du jeweils eine Stufe hinzunehmen. Der Besucher sollte diese (für beide Seiten teuren) Optionen bewußt einschalten müssen.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hi,

      Ich würde erwarten, dass
      ...

      • die Suchbegriffe in genau der angegebenen Reihenfolge gefunden werden, aber ggf,
          mit Wörtern dazwischen

      Das habe ich bis jetzt noch bei keiner Suchfunktion so gesehen, oder zumindest ist es mir nicht aufgefallen. Darum würde ich es auch nie erwarten, dass es Einfluss auf die Suchergebnisse hat, in welcher Reihenfolge ich die Suchworte eingebe.

      mfG,
      steckl

      1. Hello,

        Ich würde erwarten, dass
        ...

        • die Suchbegriffe in genau der angegebenen Reihenfolge gefunden werden, aber ggf,
            mit Wörtern dazwischen

        Das habe ich bis jetzt noch bei keiner Suchfunktion so gesehen, oder zumindest ist es mir nicht aufgefallen. Darum würde ich es auch nie erwarten, dass es Einfluss auf die Suchergebnisse hat, in welcher Reihenfolge ich die Suchworte eingebe.

        Google arbeitet genau so, macht aber kein großes Aufheben davon.
        Aber es hat meiner meinung nach zum Erfolg von Google geführt.
        Auch "Füllwörter", wie "im", "am", "bei" ... usw. werden für diese Form der Suche vorher beseitigt.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hi,

          Das habe ich bis jetzt noch bei keiner Suchfunktion so gesehen, oder zumindest ist es mir nicht aufgefallen. Darum würde ich es auch nie erwarten, dass es Einfluss auf die Suchergebnisse hat, in welcher Reihenfolge ich die Suchworte eingebe.

          Google arbeitet genau so, macht aber kein großes Aufheben davon.
          Aber es hat meiner Meinung nach zum Erfolg von Google geführt.

          Hab das gerade mal ausprobiert: Suche1 (43800 Treffer) Suche2 (44000 Treffer)
          Macht zwar keinen großen Unterschied in welcher Reihenfolge die Begriffe kommen, aber immerhin macht es einen.
          Aber warum das so ist versteh ich nicht so ganz. Hängt das damit zusammen, in welcher Reihenfolge die Begriffe in der Seite stehen, die durchsucht wird?

          Auch "Füllwörter", wie "im", "am", "bei" ... usw. werden für diese Form der Suche vorher beseitigt.

          Das wusste ich schon. Ist soweit ich mich erinnern kann sogar früher immer dabei gestanden, welche Wörter ignoriert werden.

          mfG,
          steckl

    2. Hallo Tom,

      hast Du schon genügend Spielgeld für den sprunghaft ansteigenden Traffic beisammen?

      Ich habe zumindest noch genügend Traffic da, und falls es tatsächlich mehr werden sollte, werde ich meinen Server auf ein höheres Paket upgraden.

      Die Seite an sich enthält wenige Grafiken und sollte daher auch nicht zu viel Traffic verbrauchen - die Treiber an sich werden nicht zum Herunterladen angeboten, sondern lediglich Informationen darüber (ich wollte eigentlich eine Domain der Art linux-hardware.tld, aber die waren bereits alle weg).

      Ich würde erwarten, dass

      • der Suchbegriff gesucht wird wie angegeben
      • die Suchbegriffe in genau der angegebenen Reihenfolge gefunden werden, aber ggf,
          mit Wörtern dazwischen
      • eine Phonetische Suche nach dem Suchbegriff "meinten Sie vielleicht..." stattfindet
      • Teilbegriffe des Suchbegriffs beide vorhanden sein müssen, egal welche Reihenfolge
      • auch Treffer gezeigt werden, die nur Teile der Suchworte enthalten nund zwar
          auch in anderer Reihenfolge, als angegeben.

      Insbesondere die phonetische Suche dürfte sich als problematisch erweisen, und auch die Reihenfolge wird wohl nicht berücksichtigt werden (IMHO sollten alle Begriffe gefunden werden - das ist eigentlich bei allen Suchmaschinen so).

      Grüße

      Marc Reichelt || http://www.marcreichelt.de/

      --
      Linux is like a wigwam - no windows, no gates and an Apache inside!
      Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
      1. Hello,

        Insbesondere die phonetische Suche dürfte sich als problematisch erweisen,

        Das ist Dein Problem ;-)                 Vielleicht können wir helfen?

        und auch die Reihenfolge wird wohl nicht berücksichtigt werden (IMHO sollten alle Begriffe gefunden werden - das ist eigentlich bei allen Suchmaschinen so).

        Schau Dir Google nochmals bewusst an.
        Dort findet eine Gewichtung statt.
        Nur, weil Du selber keine Einsatellungen vornehmen musst, kann der Suchrobot im Hintergrund doch trotzdem diese Unterschiede machen, oder?

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hallo Tom,

          Schau Dir Google nochmals bewusst an.
          Dort findet eine Gewichtung statt.
          Nur, weil Du selber keine Einsatellungen vornehmen musst, kann der Suchrobot im Hintergrund doch trotzdem diese Unterschiede machen, oder?

          Dieses Feature wird bei unserer Datenbank weniger hilfreich sein als dies bei langen Texten der Fall ist, wie die großen Suchmaschinen sie suchen.

          Ich muss einen Kompromiss zwischen Featuritis und Performance bzw. Einfachheit finden - eine Suche nach Teilwörtern ist sinnvoll, die phonetische Suche und eine Berücksichtigung der Reihenfolge sind aber komplex und können auch noch nachträglich eingebaut werden, sofern diese tatsächlich benötigt werden.

          Grüße

          Marc Reichelt || http://www.marcreichelt.de/

          --
          Linux is like a wigwam - no windows, no gates and an Apache inside!
          Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)