sql >> Database teknologi >  >> RDS >> Mysql

Giv nogle felter mere relevans og sorter efter relevans i mysql fuldtekstsøgning

Først skal du oprette tre FULLTEXT-indekser:

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

Byg derefter din forespørgsel på følgende måde:

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)

Dette vil give titlen 2 gange mere relevans end kroppen.

Dette er ret praktisk, når du skal tillade, at indholdet sorteres, for eksempel efter tags (som ikke ses af brugerne), fordi det giver dig mulighed for at justere resultaterne bag kulisserne.




  1. Hvordan bruger man .format()-strengen i en MySQL-sætning?

  2. Implementering af Secure Multicloud MySQL-replikering på AWS og GCP med VPN

  3. Hvordan kan jeg få en enhed fra Doctrin Fixture reference?

  4. Hvordan kan man se indekser for en database eller tabel i MySQL?