Django haystack:如果searchterm出现在特定字段中,则提升搜索结果

时间:2011-11-11 11:21:49

标签: django search django-haystack

我正在使用django-haystack在我的网站上搜索。 我的问题是,如果在特定字段中找到搜索词,我希望将搜索结果放在首位。 假设我搜索博客条目,然后我想在标题字段中找到搜索词的顶部显示这些结果。

我阅读了有关现场助推的干草堆文档,但我不明白它应该如何运作。

1 个答案:

答案 0 :(得分:4)

你可以:

修改您的搜索索引文件,例如

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

注意:正如评论中所指出的,下面只会提升标题而不是字段,使用上述内容。

或者您可以将提升传递给SearchQuerySet,例如在haystack urls文件中。

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

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