sql >> Databasteknik >  >> RDS >> Mysql

Ge några fält mer relevans och sortera efter relevans i mysql fulltextsökning

Skapa först tre FULLTEXT-index:

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

Skapa sedan din fråga på följande sätt:

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)

Detta kommer att ge titeln 2 gånger mer relevans än kroppen.

Detta är ganska praktiskt när du behöver tillåta att innehållet sorteras, till exempel efter taggar (som inte ses av användarna) eftersom det låter dig justera resultaten bakom kulisserna.




  1. PostgreSQL Where count condition

  2. Hur man använder UTF-8 Collation i SQL Server-databas?

  3. MySQL create-funktionen returnerar inte set

  4. MySQL-bokningstillgänglighet, överlappande datumintervall