Relevanz bei MySQL
user76
- datenbank
Hallo,
so sieht mein SQL-Befehl aus:
Select * FROM db Where (feld1 like 'SUCHE' or feld2 like 'SUCHE' or feld3 like 'SUCHE') order by MATCH (feld1,feld2,feld3) AGAINST ('SUCHE') DESC
Nun möchte ich aber folgendes erreichen: Feld1 und Feld2 sollen hinsichtlich der Relevanz stärker berücksichtigt werden als Feld3. Ist das direkt über den SQL-Befehl möglich?
Ansonsten wäre die Umgebung PHP. Allerdings müßte die Sache elegant gelöst werden, da die Performance wichtig ist und die Datenbank recht groß ist.
Für Ideen bin ich sehr dankbar.
Gruß
user76
hallo,
bin mir nicht ganz sicher aber du kannst die order befehle ja
'reihen'
Select * FROM db Where (feld1 like 'SUCHE' or feld2 like 'SUCHE' or feld3 like 'SUCHE') order by MATCH (feld1,feld2) AGAINST ('SUCHE') DESC, MATCH (feld3) AGAINST ('SUCHE') DESC
cu
uwi
Hallo,
Select * FROM db Where (feld1 like 'SUCHE' or feld2 like 'SUCHE' or feld3 like 'SUCHE') order by MATCH (feld1,feld2) AGAINST ('SUCHE') DESC, MATCH (feld3) AGAINST ('SUCHE') DESC
Das Problem wäre hier, dass lediglich bei zwei identischen Relevanzwerten für feld1 und feld2 die zweite Order-Anweisung greift.
Ich wäre aber eher an einer Kombination für die Zusammensetzung der Relevanz interessiert.
Also z.B. 80% Gewichtung von feld1 und feld2 und 20% Gewichtung von feld3 in der Gesamtrelevanz.
Mir ist aber eben noch eine Idee gekommen. Werde das mal ausprobieren. Vielleicht hat aber auch noch jemand anderst eine Idee.
Danke
user76