Справочники, инструменты, документация

SQL: Релевантный поиск c помощью LIKE

Например, на сайте статей есть поиск, он ищет ключевое слово по полям: «название статьи», «title » и «текст». SQL запрос получается следующим...
SELECT 
    * 
FROM 
    `articles` 
WHERE 
    `name` LIKE '%KEY%' 
    OR `title` LIKE '%KEY%' 
    OR `text` LIKE '%KEY%'

В результате поиска получается мешанина, найти нужную статью невозможно если ключевое слово одно или часто встречается.

Исправить это можно введением весов по коэффициенту релевантности т.е. если ключевое слово имеет вхождение в названии статьи, то его значение увеличивается на 40, если в title то еще +40 и т.д. Далее нужно всего лишь отсортировать таблицу по этому значению.

SELECT
    *,
    (
    IF (`name` LIKE '%KEY%', 40, 0) 
    + IF (`title` LIKE '%KEY%', 40, 0) 
    + IF (`text` LIKE '%KEY%', 20, 0)
    ) AS `relevant`
FROM 
    `articles` 
HAVING 
    `relevant` > 0
ORDER BY
    `relevant` DESC