【发布时间】:2015-03-02 21:16:54
【问题描述】:
我有 2 台带有 Haystack 的服务器:
- Server1:这已经安装了 elasticsearch
- Server2:这没有elasticsearch,查询到Server1
当我从 Server2 到 Server1 进行查询时,我的问题是分页:
- Server2 向 Server1 进行查询
- Server1 将所有结果发送回 Server2
- Server2 进行分页
但这不是最优的,如果查询返回 10.000 个对象,查询会很慢。
我知道您可以将查询中的一些值(size、from 和 to)发送到 elasticsearch,但我不知道如果使用 Haystack 可以做到这一点,我已经检查了文档并用谷歌搜索了它,但一无所获。
- 如何配置 Haystack 中的查询以接收 10 x 10 的结果?
编辑
- 是否有可能如果我让
SearchQuerySet()[10000:10010]它只会要求这 10 项? - 或者它会要求所有项目然后过滤它们?
编辑2
我在 Haystack Docs 上找到了这个:
这似乎是我想做的事情的一个功能:
通过更改开始、结束或两个偏移量来限制查询。
然后我尝试这样做:
from haystack.query import SearchQuerySet
sqs = SearchQuerySet()
sqs.query.set_limits(low=0, high=4)
sqs.filter(content='anything')
结果是完整列表,就像我从未添加 set_limit 行一样
- 为什么不工作?
【问题讨论】:
标签: django elasticsearch pagination django-haystack