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!
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!
Kommentar