我正在使用ElasticSearch和Haystack来实现搜索功能。
配置完所有内容后,我创建了一个继承自SearchView
的自定义视图:
class CustomSearchView(SearchView):
"""
Search view of haystack.
"""
template_name = 'search/search.html'
form_class = ItemSearchForm
context_object_name = 'items'
和urls.py:
urlpatterns = patterns(
'',
url(r'^', CustomSearchView.as_view(), name='search'),
)
搜索工作正常。但是我注意到每次进行搜索时,都会向ElasticSearch
发送两个请求。我可以在elasticsearch_requests.log
经过一些分析后,我发现来自AutoQuery
的{{1}}视图被调用了两次。
我想将它减少到一个,这样就不会对elasticsearch后端产生额外的压力。
为什么要两次打电话?如何防止这种情况发生?
答案 0 :(得分:1)
根据docs haystack,每个请求只加载10个项目。但您可以通过在settings.py中设置HAYSTACK_ITERATOR_LOAD_PER_QUERY变量来更改它。 希望有所帮助。