2011-12-29 37 views
8

Tôi đang sử dụng solr qua vết đen mặt trời trong ứng dụng đường ray của tôi, nơi tôi cần trả lại hơn 30 bản ghi được đặt theo mặc định. Tôi có thể làm điều đó như đã nói trong số Sunspot solr nhưng tôi không muốn phân trang cho dữ liệu. Tôi muốn hiển thị tất cả dữ liệu trong một trang bất kể hàng. Cũng cung cấp một giá trị mã hóa cứng không phải là một giải pháp có thể xảy ra mà tôi đang tìm kiếm.Tìm kiếm solitaire Sunspot, cách trả lại tất cả các bản ghi cùng một lúc?

Trả lời

11

Solr luôn luôn phân trang, vì vậy có vẻ như không có cách nào để vô hiệu hóa phân trang thông qua Sunspot (https://groups.google.com/forum/#!topic/ruby-sunspot/kVKfsrDpokc). Điều duy nhất tôi có thể nghĩ là làm được số lượng bản ghi cho mô hình của bạn trước khi tìm kiếm, và sau đó đặt biến per_page thành số đó để bạn được đảm bảo chỉ trả về một trang. Một cái gì đó như thế này:

count = Service.count 
@search = Service.search do 
    keywords(params[:search]) 
    paginate :page => 1, :per_page => count 
end 
+0

yaa .. tôi đã nghĩ như vậy và giữ tùy chọn cuối cùng nhưng phải thực hiện như không thể nhận được bất kỳ giải pháp nào khác. – Bijendra

+2

hãy cẩn thận. nhưng 'per_page: 10 ** 10' đưa ra một lỗi (vượt quá tối đa, tôi đoán), vì vậy có thể sử dụng' per_page: 10 ** 9' tĩnh thay vì 'Service.count' mỗi lần – okliv

Các vấn đề liên quan