вторник, 28 февраля 2012 г.

Django fulltext search aka fieldName__search + relevance

Вот такая коротенькая заметка: если надо сортировать результаты поиска по релевантности (когда пытаемся сделать полнотекстовый поиск) делаем следующее:
pages = Page.objects.filter(content__search=q).extra(select={
        'relevance': ur"MATCH (content) AGAINST('%s' IN BOOLEAN MODE)" % q
    },where=[
        u"MATCH(content) AGAINST('%s' IN BOOLEAN MODE)" % q
    ]).order_by('-relevance') 
 

Ну и само собой мы можем использовать релевантность как то так pages[0].relevance
Также не забываем сначала создать fulltext index на поле(я) по которым будем искать.

Комментариев нет:

Отправить комментарий