Volltextsuche

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

  • Volltextsuche

    Folgendes Problem: ich möchte eine Suche für eine Artikeldatenbank erstellen. Bisher habe ich das mit like '%...%' realisiert, aber ich habe kürzlich erfahren, dass es dazu auch die Volltextsuche gibt.
    Die Suche soll folgendermaßen funktionieren: der User gibt einen oder mehrere Suchbegriffe (getrennt durch eine Leerstelle) ein. Diese wird als eine Variable an die MySQL-Abfrage übergeben, die bisher etwa so aussieht:

    PHP-Code:
    $query=MYSQL_QUERY("SELECT id, titel, autor FROM index_artikel WHERE MATCH (beschreibung,titel,stichworte) AGAINST ('$suchbegriff')"); 
    Dabei treten zwei Probleme auf:
    1. funktioniert das ganze überhaupt nicht. Iich habe es ausprobiert - sobald ich statt in beschreibung, titel und stichworte nur in einem Bereich suche geht es (aber es muss doch möglich sein mehrere Spalte zu durchsuchen, oder?).

    2. Sollen die Ergebnisse 1. in REihenfolge der Relevanz (also der Übereinstimmung mit den Suchbegriffen) angezeigt werden, und 2. sollen nur die Ergebnisse angezeigt werden, deren Relevanz größer ist als 0 (die also wirklich eine Übereinstimmung habe).
    Bitte sagt mir wie ich das bewerkstelligen kann bzw. wie die mySQL Abfrage auszusehen hat.

  • #2
    Bonjour,

    das entsprechende Kapitel im mySQL-Manual laesst da eigentlich keine Fragen offen.

    Achte darauf, dass du den FT-Index korrekt erstellt:
    Zitat aus dem Manual: "Alle Parameter der MATCH-Funktion müssen Spalten derselben Tabelle sein, die Teil desselben Volltext-Indexes ist."

    Also EIN Index ueber alle Spalten zusammen.

    HTH, janosch.

    Kommentar


    • #3
      Danke Janosch, das war genau mein Problem. Ich hatte mir die Hilfe auch angesehen aber offenbar nicht aufmerksam genug gelesen oder falsch verstanden - an diese Hilfstexte muss ich mich erst gewöhnen (viele Informationen auf engem Raum überfordern mich ).
      Also danke nochmal!

      Kommentar

      Lädt...
      X