Django Haystack - ElasticSearch结果窗口太大了

时间:2017-05-18 14:16:46

标签: python django database elasticsearch django-haystack

我一直在研究使用Postgres和ElasticSearch开发的使用Django开发的Web应用程序。它使用ElasticSearch,因为数据库存储了大量按小时增加的数据。为了让事情快速运行,我使用了django-haystack 2.6.0,它允许我很容易地访问Elastic Search。到目前为止一切都很好。

当我在ElasticSearch上查询时出现问题,结果非常大。我得到的错误如下:

  

TransportError:TransportError(500,u'search_phase_execution_exception',u'Result窗口太大,+ size必须小于或等于:[10000]但是[12602]。请参阅scroll api以获得更高效率请求大数据集的方法。可以通过更改[index.max_result_window]索引级别参数来设置此限制。')

经过一些研究后,我尝试增加结果窗口大小,但从长期来看这不起作用,因为查询集大小不断增加。 另外django-haystack似乎没有实现滚动API,所以我不能按照堆栈跟踪中显示的建议。

我的问题是:无论如何我可以修复此错误并使用django-haystack获取一个大的查询集可能以某种方式对结果进行分页? 或者,如果不使用haystack,还有更好的方法吗?

提前致谢!

0 个答案:

没有答案