【问题标题】:Why is Haystack AutoQuery called twice?为什么 Haystack AutoQuery 被调用两次?
【发布时间】:2015-10-09 10:32:36
【问题描述】:

我正在使用 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看到这一点

经过一些分析,我发现来自haystack.inputsAutoQuery 视图被调用了两次。

我想将其减少到一个,这样就不会对 elasticsearch 后端造成额外的压力。

为什么要调用两次?如何防止这种情况发生?

【问题讨论】:

    标签: python django search elasticsearch django-haystack


    【解决方案1】:

    根据docs haystack,每个请求仅加载 10 个项目。但是您可以通过在 settings.py 中设置 HAYSTACK_ITERATOR_LOAD_PER_QUERY 变量来更改它。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 2021-11-25
      • 2015-12-24
      • 2012-12-10
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多