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