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

MySQL:Hvorfor er score altid 1 i fuldtekst?

BOOLEAN MODE understøtter kun binære svar, betyder 0 eller 1, uanset om søgestrengen vises i kolonnen eller ej. For at få et decimalresultat til at beregne en vægt, skal du bruge match-mod på indekserede kolonner.

Du kan bruge den booleske tilstand på denne måde for at få din vægt enten:

SELECT *, ((1.3 * (MATCH(column1) AGAINST ('query' IN BOOLEAN MODE))) +
(0.6 * (MATCH(column2) AGAINST ('query' IN BOOLEAN MODE)))) AS relevance
FROM table WHERE ( MATCH(column1,column2) AGAINST
('query' IN BOOLEAN MODE) ) ORDER BY relevance DESC

Fordelen ved den booleske tilstand er, at du kan bruge den på ikke-indekserede kolonner, men kun med 0,1 som resultat, den ikke-booleske tilstand returnerer et decimalresultat, men kan kun anvendes på indekserede kolonner... se også her .



  1. Opretter forbindelse til MySQL fra Android med JDBC

  2. Afstemningsdatabaseskema

  3. Hvordan DevOps skal bruge DBaaS (Database-as-a-Service) til at optimere deres applikationsudvikling​

  4. Skift en partition ud i SQL Server (T-SQL)