sql >> Databasteknik >  >> RDS >> Mysql

MySQL Fulltext Boolean Mode-sökning ger för många resultat

För att förbättra sorteringen av resultaten i booleskt läge kan du använda följande:

SELECT column_names, MATCH (text) AGAINST ('word1 word2 word3')
AS col1 FROM table1
WHERE MATCH (text) AGAINST ('+word1 +word2 +word3' in boolean mode) 
order by col1 desc;

Använda första MATCH() vi får poängen i icke-booleskt sökläge (mer distinkt) . Den andra MATCH() försäkrar att vi verkligen bara får tillbaka de resultat vi vill ha (med alla tre orden) .

Så din fråga blir:

SELECT *, MATCH (artist, title) AGAINST ('paul van dyk')
    AS score FROM tracks
    WHERE MATCH (artist, title) 
    AGAINST ('+paul +van +dyk' in boolean mode) 
    order by score desc;

Förhoppningsvis; du kommer att få bättre resultat nu.

Om det fungerar eller inte fungerar; vänligen meddela mig.



  1. Hur kan jag lagra och hämta bilder från en MySQL-databas med PHP?

  2. Pandas:Hur man läser och skriver filer

  3. Fullständig lista över lokaler i MySQL

  4. Utforska datamodellering (hur man hoppar ihop en vettig databas)