Satz nach ganzen Wörtern durchsuchen mit SELECT

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

  • Satz nach ganzen Wörtern durchsuchen mit SELECT

    Hallo liebe Forum-Gemeinde,

    ich habe ein Problem bei dem ich einfach nicht weiter komme: In meiner Tabelle ist z.B. eine Spalte "Produktname" vom Typ Varchar(255). Darin enthalten sind Produktnamen wie z.B.:

    "Cleanfit im großen Vorratsbeutel Duft Rose"

    Zur Abfrage steht dem Benutzer ein Eingabefeld zur Verfügung in der er beliebigen Text eingeben kann. Bisher habe ich die Abfragen über LIKE %$var% realisiert. Das Problem dabei, sucht jemand z.B. nach "Vorrat" findet er auch obiges Produkt, da das Wort "Vorrat" in "Vorratsbeutel" enthalten ist. Das liefert viele, unerwünschte Ergebnisse. Daher möchte ich eine GANZWORT-Suche realisieren.

    Meine bisherigen Recherchen haben erbracht dass es a) Volltextsuche gibt und b) über Regex. Aber leider ist bei a) die Mindestlänge von 4 Buchstaben in der my.cnf definiert, ich benötige 3 und komme nur schwer an die my.cnf - bei b) soll die Performance schlecht sein.

    Bei meiner Datenbank handelt es sich um etwa 50.000 Einträge. Des Weiteren sollen in Zukunft noch ein paar Spalten dazu kommen (aber nicht länger/größer als Varchar(255)).

    Kann mir jemand vielleicht einen Tipp geben? Problematisch ist vielleicht auch dass er Sonderzeichen ignorieren soll, also wenn in der Tabelle steht "Vorrat!" dass er dann trotzdem dieses als Treffer wertet.

    Ich wär euch sehr sehr dankbar!
    www.FrozenEmotions.de

  • #2
    Du solltest über die Volltextsuche gehen und match() against() benutzen

    oder wortgrenzen einsetzen
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      hmmm schade dass es keine andere Möglichkeit gibt.

      Aber eine Frage zur Volltextsuche: Man erstellt ja einen Index der Tabelle damit das ganze erst möglich wird. MUSS dieser Index jedes mal neu erstellt werden wenn es neue Einträge in der Datenbank gibt? Oder wie kann ich mir das vorstellen?

      Besten Dank!
      www.FrozenEmotions.de

      Kommentar


      • #4
        MUSS dieser Index jedes mal neu erstellt werden wenn es neue Einträge in der Datenbank gibt?
        Der Index wird vom DBMS verwaltet!
        Einmal anlegen und nie wieder drum kümmern.
        Wir werden alle sterben

        Kommentar

        Lädt...
        X