user76: Relevanz bei MySQL

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

  1. 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

    1. 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