我正在使用elasticsearch-rails和will_paginate gems运行Rails和Elasticsearch,并且事情很有效。
我遇到的唯一问题是我的记录数增加了超过10.000,这给出了错误“结果窗口太大,+大小必须小于或等于:[10000]但是[10200]”当有人点击分页链接的最后一页时。
现在我不想搞乱index.max_result_window,因为我的数据集要大得多,而且我真的不需要访问者能够查看每个页面和记录。
所以基本上我只是想在我的结果上设置10.000的限制,但是我没有运气。
这是我在控制器操作中的查询:
@response = Price.search(params)
@response = @response.paginate(page: params[:page], per_page: 24)
@prices = @response.records.includes(shop: :pictures)
@prices_count = @response.total_entries
@prices = @prices.decorate
@results = @response.results
我使用
将@response提供给will_paginatewill_paginate(@response)
我尝试在各个地方使用.limit(10000),并为will_paginate提供total_entries值,但似乎没有任何效果。
你们有什么想法吗?
谢谢!
答案 0 :(得分:1)
我有同样的问题,在我的情况下,我使用kaminari
,但应该与will_paginate
一样:
= paginate @keyword_search_results
在400页之后每页有25个结果会引发index.max_result_window
错误,因此我只需将:total_pages
选项添加到paginate
= paginate @keyword_search_results,{:total_pages => 400}
根据您的需要动态计算该值是个好主意。
答案 1 :(得分:0)
使用per_page选项
@response = Price.search(params,per_page:24)