sql >> Database >  >> RDS >> Mysql

MySQL:Waarom is de score altijd 1 in Fulltext?

De BOOLEAN-MODUS ondersteunt alleen binaire antwoorden, betekent 0 of 1, ongeacht of de zoekreeks in de kolom voorkomt of niet. Om een ​​decimaal resultaat te krijgen om een ​​gewicht te berekenen, moet u match-against gebruiken voor geïndexeerde kolommen.

U kunt de booleaanse modus op deze manier gebruiken om uw gewicht te krijgen:

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

Het voordeel van de booleaanse modus is dat je deze kunt gebruiken op niet-geïndexeerde kolommen maar alleen met 0,1 als resultaat, de niet-booleaanse modus geeft een decimaal resultaat maar kan alleen worden toegepast op geïndexeerde kolommen... zie ook hier .



  1. Tijdstempelverschil in uren voor PostgreSQL

  2. Oracle Concurrent Manager

  3. Hoe krijg ik de ID van meerdere ingevoegde rijen in MySQL?

  4. Aantal andere rijen in tabel met dezelfde waarde