Хорошо, поэтому я пытаюсь выполнить полнотекстовый поиск в нескольких столбцах, примерно так:
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 в локальном тестировании)