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

sch*_*ock 6 django search django-haystack

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

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

Jam*_*esO 5

您可以:

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

class BlogEntryIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    title = CharField(model_attr='title', boost=1.125)
Run Code Online (Sandbox Code Playgroud)

注意:正如评论中所指出的,下面只会增强术语标题而不是字段,请使用上面的内容。

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

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

urlpatterns = patterns('haystack.views',
    url(r'^$', SearchView(searchqueryset=sqs), name='haystack_search'),
)
Run Code Online (Sandbox Code Playgroud)