Alv*_*oAV 6 django pagination django-haystack elasticsearch
我有两台Haystack服务器:
当我从Server2向Server1发出查询时,我的问题是关于分页:
但这不是最优的,如果查询返回10.000对象,查询将会很慢.
我知道你可以向查询中发送一些值的弹性搜索(大小,从和到)但我不知道这是否可以使用Haystack,我检查了文档并用Google搜索并没有发现任何内容.
SearchQuerySet()[10000:10010]它只会要求这10项?我在Haystack Docs上找到了这个:
它似乎是一个功能,做我正在尝试做的事情:
通过更改开始,结束或两个偏移来限制查询.
然后我试着做:
from haystack.query import SearchQuerySet
sqs = SearchQuerySet()
sqs.query.set_limits(low=0, high=4)
sqs.filter(content='anything')
结果是完整列表,就像我从不添加set_limit行一样
Haystack 的工作方式与 Django ORM 有点不同。限制查询集后,您应该调用 get_results() 以获得有限的结果。这实际上很聪明,因为它避免了来自 Elastic 的多个请求。
例子:
# Assume you have 800 records.
sqs = SearchQuerySet()
sqs.query.set_limits(low=0, high=4)
len(sqs)  # Will return 800 records
len(sqs.get_results())  # Will return first 4 records.
希望有帮助。
| 归档时间: | 
 | 
| 查看次数: | 1728 次 | 
| 最近记录: |