sql >> Database >  >> RDS >> Mysql

MySQL Fulltext Booleaanse modus zoeken levert te veel resultaten op

Om het sorteren van de resultaten in de booleaanse modus te verbeteren, kunt u het volgende gebruiken:

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;

De eerste . gebruiken MATCH() we krijgen de score in niet-booleaanse zoekmodus (meer onderscheidend) . De tweede MATCH() zorgt ervoor dat we echt alleen de resultaten terugkrijgen die we willen (met alle 3 de woorden) .

Uw vraag wordt dus:

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;

Hopelijk; je krijgt nu betere resultaten.

Als het werkt of niet werkt; laat het me weten.



  1. JDBC-verbinding - Class.forName versus Class.forName().newInstance?

  2. Hoe SQL-databases te verbergen waartoe een gebruiker geen toegang heeft?

  3. Wat zijn verschillende soorten beperkingen die beschikbaar zijn in SQL Server - SQL Server / T-SQL-zelfstudie, deel 50

  4. PHP/SQL invoegfout bij gebruik van benoemde tijdelijke aanduidingen