morgenstern
Erfahrenes Mitglied
Hallo Leute!
Ich muss für eine kleine Datenbank (mySQL) eine Suche mit PHP realisieren. Normalerweise würde ich zu einer mySQL "IN BOOLEAN MODE" greifen, jedoch machen mir hier die 50% Marke, sowie die Stopwörter einen Strich durch die Rechnung.
Die Datenbank hat viele gleiche Stichwörter in 4 verschiedenen Feldern, aber nicht sehr viele Einträge. Dadurch komme ich leicht auf die 50% Marke. Der Wunsch ist auch, dass die ähnlichen Wörter ausgegeben werden. Zb.: wenn nach "hof" gesucht wird, dass auch "Bauernhof" gefunden wird. Soweit ich weiß, geht dies bei der "IN BOOLEAN MODE" Methode nur umgekehrt. (Man sucht nach Bauern* und findet dadurch auch Bauernhof, aber wenn man nach *hof sucht pasiert nichts. Falls ich hier falsch liege, bitte sagen.)
Nun muss wohl eine LIKE Suche mit 3 verschiedenen Suchparametern herhalten. AND, OR und NOT LIKE.
Mein Plan ist es zuerst per explode() die Wörter zu zählen und zu trennen - anhand des Leerzeichens und danach auf Paramter wie + - , " " zu durchsuchen. Hierfür würde ich pregmatch() und tim() verwenden.
Nun kommt mir das ein wenig unsicher vor, ob ich so jeden Suchbegriff bekomme und den passenden Paramter sowie die Fehlerquellen einschränken kann.
Hat wer Tipps für mich, auf was ich achten muss oder einen besseren Lösungsweg?
Vielen Dank!
Ich muss für eine kleine Datenbank (mySQL) eine Suche mit PHP realisieren. Normalerweise würde ich zu einer mySQL "IN BOOLEAN MODE" greifen, jedoch machen mir hier die 50% Marke, sowie die Stopwörter einen Strich durch die Rechnung.
Die Datenbank hat viele gleiche Stichwörter in 4 verschiedenen Feldern, aber nicht sehr viele Einträge. Dadurch komme ich leicht auf die 50% Marke. Der Wunsch ist auch, dass die ähnlichen Wörter ausgegeben werden. Zb.: wenn nach "hof" gesucht wird, dass auch "Bauernhof" gefunden wird. Soweit ich weiß, geht dies bei der "IN BOOLEAN MODE" Methode nur umgekehrt. (Man sucht nach Bauern* und findet dadurch auch Bauernhof, aber wenn man nach *hof sucht pasiert nichts. Falls ich hier falsch liege, bitte sagen.)
Nun muss wohl eine LIKE Suche mit 3 verschiedenen Suchparametern herhalten. AND, OR und NOT LIKE.
Mein Plan ist es zuerst per explode() die Wörter zu zählen und zu trennen - anhand des Leerzeichens und danach auf Paramter wie + - , " " zu durchsuchen. Hierfür würde ich pregmatch() und tim() verwenden.
Nun kommt mir das ein wenig unsicher vor, ob ich so jeden Suchbegriff bekomme und den passenden Paramter sowie die Fehlerquellen einschränken kann.
Hat wer Tipps für mich, auf was ich achten muss oder einen besseren Lösungsweg?
Vielen Dank!