Mysql
 sql >> база данни >  >> RDS >> Mysql

Търсенето в пълен текст в MySQL булев режим връща твърде много резултати

За да подобрите сортирането на резултатите в булев режим, можете да използвате следното:

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;

Използване на първия MATCH() получаваме резултата в небулев режим на търсене (по-отличителен) . Втората MATCH() гарантира, че наистина получаваме само резултатите, които искаме (с всичките 3 думи) .

Така вашата заявка ще бъде:

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;

Да се ​​надяваме; сега ще получите по-добри резултати.

Ако работи или не работи; моля, уведомете ме.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично или редовно архивиране на mysql данни

  2. Как да направя пагинация за JSON данни в PHP?

  3. Конфигурация на база данни CakePHP 4.0

  4. повреди от инжектиране на mysql?

  5. Доктрина и композитни уникални ключове