Гаразд, отже, я намагаюся здійснити повнотекстовий пошук у кількох стовпцях, щось таке просте:
SELECT * FROM pages WHERE MATCH(head, body) AGAINST('some words' IN BOOLEAN MODE)
Тепер я хочу впорядкувати за релевантністю (скільки слів знайдено?), Що мені вдалося зробити приблизно таким чином:
SELECT * , MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE) AS relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE)
ORDER BY relevance
Тепер наступає та частина, коли я загублюсь, я хочу надати пріоритет релевантності в head
колонці.
Я думаю, я міг би зробити два стовпці релевантності, один для head
і один для body
, але на той момент я б виконував приблизно однаковий пошук у таблиці три рази, і для того, що я роблю цю функцію, важлива продуктивність, оскільки Запит буде об'єднано та зіставлено з іншими таблицями.
Отже, моє головне питання полягає в тому , чи існує більш швидкий спосіб пошуку релевантності та визначення пріоритетів певних стовпців? (А як бонус, можливо, навіть підрахування релевантності, скільки разів слова трапляються у стовпцях?)
Будь-які пропозиції чи поради були б чудовими.
Примітка: Я буду запускати це на LAMP-сервері. (WAMP при локальному тестуванні)