Важность найденных результатов поиска в зависимости от поля

Avdoshyn

Новичок
Важность найденных результатов поиска в зависимости от поля

Пример: поиск по новостям. Скажем есть заголовок новости, подводка, текст.

Все 3 поля фуллтекстовые, поиск произвожу match(name,podvodka,tekst) against ('*key*') но вот проблема, не получается отсортировать результаты таким образом, чтобы приоритет найденных в поле name результатов был выше и выводился вначале, а делать поиск по таблице 2 раза как то не хочется. Может кто что подскажет?

Заранее спасибо.
 

svetasmirnova

маленький монстрик
В MySQL, насколько я помню, достаточно FULLTEXT INDEX создать по этим полям, чтобы релевантность учитывалась
 

Avdoshyn

Новичок
Спасибо, вопрос снят

SELECT *, MATCH field1 AGAINST ('$searchwords')+MATCH field2 AGAINST ('$searchwords') as relev FROM table ORDER BY relev DESC

к каждому из полей можно задать, например, коэффициент значимости и при суммировании релевантностей полей умножать их на этот коэффициент. Поисковая фраза будет "больше" искаться в полях с большим коэффициентом. Например, если мы делаем поиск по проиндексированным страницам каталога ресурсов, то поле имени страницы обычно задают с большим коэффициентом, чем поля мета-тегов описаний или ключевых слов.
 
Сверху