Hi zusammen,
ich habe Probleme die Relevanz bei einer Volltextsuche in mysql zu beeinflussen.
Die Query ist recht lang, deshalb mal ein vereinfachtes Beispiel:
Name: "Jan Bäcker"
Beruf: "Maurer"
Profil: "Ich bin Maurer und liebe es"
diese 3 Spalten werden in einem Index zusammengefasst. Bei einer Suche nach "Jan Bäcker" ergibt sich dann ab und an mal das Problem, dass Sachen aus (in diesem Fall ) dem Profil höher gewichtet werden... wenn nu jemand Bäcker von Beruf ist und im Profil auch Bäcker stehen hat, ist dieser in der in der Ergebnisliste höher angesiedelt als halt den Jan Bäcker, den wir eigentlich suchten.
Was ich nun möchte ist, das die erste Spalte (in diesem Beispiel der Name) eine höhere Relevanz erhält, als der Rest... und das krieg ich partout nicht gebacken
Habs z.B. schon so probiert:
aber damit bekomm ich nur ein fröhliches "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near..."
Hat jemand eine Idee? Was mach ich hier falsch...
Danke vorab schon einmal!
ich habe Probleme die Relevanz bei einer Volltextsuche in mysql zu beeinflussen.
Die Query ist recht lang, deshalb mal ein vereinfachtes Beispiel:
Name: "Jan Bäcker"
Beruf: "Maurer"
Profil: "Ich bin Maurer und liebe es"
diese 3 Spalten werden in einem Index zusammengefasst. Bei einer Suche nach "Jan Bäcker" ergibt sich dann ab und an mal das Problem, dass Sachen aus (in diesem Fall ) dem Profil höher gewichtet werden... wenn nu jemand Bäcker von Beruf ist und im Profil auch Bäcker stehen hat, ist dieser in der in der Ergebnisliste höher angesiedelt als halt den Jan Bäcker, den wir eigentlich suchten.
Was ich nun möchte ist, das die erste Spalte (in diesem Beispiel der Name) eine höhere Relevanz erhält, als der Rest... und das krieg ich partout nicht gebacken
Habs z.B. schon so probiert:
Code:
SELECT *, MATCH ( 1.5*`Name` , `Beruf`, `Profil` ) AGAINST ("Jan Bäcker") AS score FROM Leute WHERE MATCH ( `Name` , `Beruf`, `Profil` ) AGAINST ("Jan Bäcker") ORDER BY score;
Hat jemand eine Idee? Was mach ich hier falsch...
Danke vorab schon einmal!
Kommentar