sql >> Database >  >> RDS >> Mysql

Geef sommige velden meer relevantie en sorteer op relevantie in mysql full text search

Maak eerst drie FULLTEXT-indexen:

* one on the title column
* one on the body column
* one on both title and body columns

Stel vervolgens uw zoekopdracht op de volgende manier samen:

SELECT field1, field2, field3, title, body,
MATCH (title) AGAINST ('word_to_search') AS rel_title,
MATCH (body) AGAINST ('word_to_search') AS rel_body
FROM table_to_use
WHERE MATCH (title,body) AGAINST ('word_to_search')
ORDER BY (rel_title*2)+(rel_body)

Dit geeft de titel 2 keer meer relevantie dan de body.

Dit is best handig wanneer u de inhoud moet laten sorteren, bijvoorbeeld op tags (die niet door de gebruikers worden bekeken), omdat u de resultaten van achter de schermen kunt aanpassen.




  1. Booleaans veld in Oracle

  2. Hoe de tijd uit de database te ontleden

  3. Hoe kan ik links deelnemen aan meerdere één tot veel tabellen in mysql?

  4. MYSQL Left Join COUNTS van meerdere tabellen