【发布时间】:2011-12-26 22:52:22
【问题描述】:
我正在使用 django-haystack 在我的网站上进行搜索。 我的问题是,如果在特定字段中找到搜索词,我希望将搜索结果放在首位。 假设我搜索博客条目,然后我想在标题字段中找到搜索词的顶部显示这些结果。
我阅读了有关场增强的 haystack 文档,但我不明白它应该如何工作。
【问题讨论】:
标签: django search django-haystack
我正在使用 django-haystack 在我的网站上进行搜索。 我的问题是,如果在特定字段中找到搜索词,我希望将搜索结果放在首位。 假设我搜索博客条目,然后我想在标题字段中找到搜索词的顶部显示这些结果。
我阅读了有关场增强的 haystack 文档,但我不明白它应该如何工作。
【问题讨论】:
标签: django search django-haystack
您可以:
修改您的搜索索引文件,例如
class BlogEntryIndex(SearchIndex):
text = CharField(document=True, use_template=True)
title = CharField(model_attr='title', boost=1.125)
注意:正如 cmets 中所指出的,下面只会提升术语标题而不是字段,请使用上面的。
或者您可以将提升传递给您的 SearchQuerySet,例如在您的 haystack urls 文件中。
sqs = SearchQuerySet().boost('title', 1.125)
urlpatterns = patterns('haystack.views',
url(r'^$', SearchView(searchqueryset=sqs), name='haystack_search'),
)
【讨论】: