Хорошо, я пытаюсь выполнить полнотекстовый поиск в нескольких столбцах, примерно так:
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
и один для body
, но в этот момент я бы выполнял примерно такой же поиск в таблице три раза, и для того, что я делаю этой функцией, важна производительность, поскольку запрос будет объединен и сопоставлен с другими таблицами.
Итак, мой главный вопрос: , есть ли быстрый Как найти релевантность и расставить приоритеты для определенных столбцов? (И в качестве бонуса возможно даже подсчет релевантности, сколько раз слова встречаются в столбцах?)
Любые предложения или советы были бы замечательными.
Примечание: Я буду запускать это на LAMP-сервере. . (WAMP в локальном тестировании)