2015-07-20 54 views
1

我正在使用ElasticSearch和Haystack來實現搜索功能。Haystack AutoQuery爲什麼調用兩次?

配置一切後,我創建了從0​​繼承的自定義視圖:

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來自haystack.inputs的視圖被調用兩次。

我想將其降低爲1,這樣就不會對elasticsearch後端造成額外的壓力。

爲什麼被稱爲兩次?如何防止這種情況發生?

回答

1

根據docs haystack每個請求只加載10個項目。但是你可以通過在你的settings.py中設置HAYSTACK_ITERATOR_LOAD_PER_QUERY變量來改變它。 希望有所幫助。

相關問題