Ich arbeite an einer Webanwendung und brauche Hilfe bei einer Abfrage. Ich bin mit Volltext, das ist, wie es sieht:Sortieren nach Most gefunden MY_SQL Volltext
SELECT id, name, city, state, country, date
FROM events_search
WHERE MATCH(name, city, state, country)
AGAINST ('$str')
Wie man sehen kann ich einen Index bin mit, die den Namen, Stadt, Staat und Land enthält und mit einem String-Matching, dass der Benutzer eingibt. Diese Zeichenfolge kann eine beliebige Kombination der Felder enthalten, die ich gerade erwähnt habe. Also muss ich die Datenbank abfragen, die relevantesten Ergebnisse finden und sie dann dem Benutzer zeigen. Bis jetzt funktioniert es gut, aber nicht perfekt.
Zum Beispiel: wenn der Benutzer Miami Florida eingibt, sind die ersten 5 Ergebnisse in Miami und in anderen Städten in Florida. Die nächsten 5 sind in Miami Arizona (ich will das nicht zeigen), und nachdem ich mehr Ergebnisse bekommen werde, die in Florida und Miami (Florida) sind. Also, was ich tun möchte, ist das Feld, das gefunden wurde, mehr Male und zeigen Sie die Ergebnisse, die dieses Feld an der Spitze haben. In diesem Fall wird es Florida sein, da 70% der Ergebnisse Florida im Staatsgebiet haben.