sql >> Databáze >  >> RDS >> Mysql

Hledání fulltextového booleovského režimu MySQL vrací příliš mnoho výsledků

Chcete-li zlepšit řazení výsledků v booleovském režimu, můžete použít následující:

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;

Pomocí prvního MATCH() skóre získáme v nelogickém režimu vyhledávání (výraznější) . Druhé MATCH() zajišťuje, že se nám skutečně vrátí pouze výsledky, které chceme (se všemi 3 slovy) .

Váš dotaz tedy bude:

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;

Doufejme; nyní dosáhnete lepších výsledků.

Jestli to funguje nebo nefunguje; dejte mi prosím vědět.



  1. Jak vytvořit uložené procedury PL/SQL s parametry v databázi Oracle

  2. CakePHP matematicko-kalkulační obor?

  3. Jak převést skalární poddotaz SQL na výraz SQLAlchemy

  4. Chyba služby XAMPP MySQL po restartu