sql >> Database >  >> RDS >> Mysql

MySQL match() against() - volgorde op relevantie en kolom?

Dit misschien geef de verhoogde relevantie aan het hoofdgedeelte dat u wilt. Het zal het niet verdubbelen, maar het is misschien goed genoeg voor jou:

SELECT pages.*,
       MATCH (head, body) AGAINST ('some words') AS relevance,
       MATCH (head) AGAINST ('some words') AS title_relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words')
ORDER BY title_relevance DESC, relevance DESC

-- alternatively:
ORDER BY title_relevance + relevance DESC

Een alternatief dat je ook wilt onderzoeken, als je de flexibiliteit hebt om van DB-engine te wisselen, is Postgres . Het maakt het mogelijk om het gewicht van operators in te stellen en te spelen met de rangorde.



  1. org.postgresql.util.PSQLException:De kolomindex is buiten bereik:3, aantal kolommen:2

  2. Gegevenskwaliteit en vaag zoeken

  3. Een login.sql-bestand maken voor SQLcl

  4. Waarde van weergave-item invullen bij query in Oracle Forms