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