mySQL 5.5 - FullText Index

oliverb

Mitglied
Moin,

kurze Frage in die Runde:

Hier bringt mySQL mir alle Suchergebnisse, die exakt das Wort "Berlin" enthalten.
SELECT * FROM table WHERE MATCH (city) AGAINST ('Berlin');

Ich suche jetzt nach einer Lösung, mit der ich einen Teil des Keywords - z.B. "Ber" - abfragenkann. mySQL solle mir trotzdem alle Einträge mit dem Wort "Berlin" ausgeben.
SELECT * FROM table WHERE MATCH (city) AGAINST ('Ber');

Eine Suche per LIKE fällt aus, da ich eine DB mit ziemlich vielen Einträgen habe. Gibt es diese Funktion überhaupt mit Fulltext-Indexes? Habe leider keine eindeutige Antwort im Netz gefunden ...
 
Diese Methode bringt leider keine Ausgabe. Es funktioniert dann nur mit LIKE oder INSTR

Mir hilft mir aber aufgrund der Daenmenge leider nur der Fulltext Index weiter. Suche von der Problematik her eine Lösung, mit der ich möglichst schnell an die Daten aus der DB komme und will dabei natürlich die Fulltext Indexe nutzen!

In meiner DB sind quasi Matchcodes eines Artikels, cie ich per Suchfeld auf meiner Webseite abfragen lassen möchte.. Ein Kunde gibt niemals den ganzen Matchcode an, sondern nur einen Teil des Matchcodes. Ich dachte dass ich da mit FulltextIndex weiter komme. Scheinbar funtioniert das aber nur, wenn der Anwender den kompletten Matchcode eingibt und nicht nur einen Teil davon.

Moglichkeit1
Ich schreibe alle erdenklichen Schreibweisen des Matchcodes in ein großes Datenfeld und indexiere dieses Datenfeld mit Fulltext.

Möglichkeit2
Ich verwende LIKE oder INSTR. Das ist aber wesentlich langsamer, weshalb ich diese Variante eigentlich nicht bevorzuge.

Möglichkeit3
Ist der Grund meines Posts. Ich weis leider nicht ob es eine Kombination aus beiden Möglichkeiten gibt. Hier sind die Profis unter Euch gefragt... :)
 
Weis jemand, wie ich bei einer Fulltext-Suche mySQL dazu bewegen kann, Wörter zu erkennen die aus <= drei Buchstaben bestehen?

SELECT * FROM table WHERE MATCH (city) AGAINST ('Ber');

Ber steht wirklich genau so als einzelnes Wort in der Spalte city. Alle anderen Wörter werden erkannt. Nur nicht Wörter die <= drei Buchstaben haben... :confused:
 
Zurück