Соответствие MySQL ()Against () - упорядочить по релевантности и столбцу?

Хорошо, я пытаюсь выполнить полнотекстовый поиск в нескольких столбцах, примерно так:

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 в локальном тестировании)

73
задан Kristoffer la Cour 7 June 2011 в 00:56
поделиться