2015-07-20 3 views
1

Я использую ElasticSearch и Haystack для реализации функции поиска.Почему Haystack AutoQuery называется дважды?

После настройки все, что я создал пользовательский вид, который наследуется от 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 вид из haystack.inputs вызывается дважды.

Я хочу уменьшить его до одного, чтобы дополнительное усилие не оказывалось на заднюю часть elasticsearch.

Почему это называется дважды? Как предотвратить это?

ответ

1

В соответствии с docs стог сена загружает всего 10 единиц на запрос. Но вы можете изменить это, установив переменную HAYSTACK_ITERATOR_LOAD_PER_QUERY в свои settings.py. Надеюсь, что помогает.

Смежные вопросы