Tôi có 2 máy chủ với Haystack:Haystack và Elasticsearch: số Giới hạn kết quả
- Server1: Đây có elasticsearch cài đặt
- server2: Điều này không có elasticsearch, các truy vấn được thực hiện đến Máy chủ1
Vấn đề của tôi là về phân trang khi tôi thực hiện truy vấn từ S erver2 để Server1:
- server2 làm cho truy vấn để Server1
- Server1 gửi tất cả các kết quả lại cho server2
- server2 làm cho pagination
Nhưng điều này không phải là tối ưu, nếu truy vấn trả về 10.000 đối tượng, truy vấn sẽ chậm.
Tôi biết rằng bạn có thể gửi đến elasticsearch một số giá trị trong truy vấn (kích thước, từ và để) nhưng tôi không biết nếu điều này là có thể sử dụng Haystack, tôi đã kiểm tra hồ sơ và googled nó và thấy không có gì.
- Làm cách nào để định cấu hình truy vấn trong Haystack để nhận kết quả 10 đến 10?
Sửa
- phải là có thể rằng nếu tôi làm
SearchQuerySet()[10000:10010]
nó sẽ chỉ yêu cầu này 10 mặt hàng? - Hoặc nó sẽ yêu cầu tất cả các mục và sau đó lọc chúng?
Edit2
Tôi thấy điều này trên Haystack Documents:
có vẻ như một chức năng để làm whatt Tôi đang cố gắng để làm:
Restricts the query by altering either the start, end or both offsets.
Và sau đó tôi đã cố gắng làm:
from haystack.query import SearchQuerySet
sqs = SearchQuerySet()
sqs.query.set_limits(low=0, high=4)
sqs.filter(content='anything')
Kết quả là danh sách đầy đủ, giống như tôi không bao giờ thêm dòng set_limit
- Tại sao không làm việc?
Tôi phải thử điều này, tôi đã chiến đấu với mã rất nhiều vào lúc đó và không tìm thấy thông tin để đạt được nó. Cảm ơn !! – AlvaroAV
Tôi nhận được lỗi này - đối tượng 'AttributeError: 'SearchQuerySet' không có thuộc tính 'get_results'' – garg10may
dòng cuối cùng phải là' len (sqs.query.get_results()) ' – garg10may