Django Haystack: повышение результатов поиска, если searchterm появляется в определенном поле - PullRequest
6 голосов
/ 11 ноября 2011

Я использую django-haystack для поиска на моем сайте. Моя проблема в том, что я хотел бы, чтобы результаты поиска были в верхней части, если поисковый термин был найден в определенном поле. Допустим, я ищу записи в блоге, затем я хотел бы показать эти результаты сверху, где в поле заголовка был найден поисковый запрос.

Я прочитал документацию по стогу сена об усилении поля, но я не понимаю, как это должно работать.

1 Ответ

4 голосов
/ 11 ноября 2011

Вы можете либо:

Изменить свой индексный файл поиска, например,

class BlogEntryIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    title = CharField(model_attr='title', boost=1.125)

ПРИМЕЧАНИЕ. Как указано в комментариях, приведенный ниже комментарий только усилит термин заголовок, а не поле, используйте выше.

или вы можете передать повышение вашему SearchQuerySet, например, в вашем файле сена haystack.

sqs = SearchQuerySet().boost('title', 1.125)

urlpatterns = patterns('haystack.views',
    url(r'^$', SearchView(searchqueryset=sqs), name='haystack_search'),
)
...