WillPaginate pagination for Esse search queries.
Contents
Install
# Gemfilegem 'esse'gem 'will_paginate'gem 'esse-will_paginate'No configuration is needed. The gem mixes a paginate method into every Esse::Search::Query on load.
Quick start
@search = UsersIndex .search(body: { query: { match: { name: params[:q] } } }) .paginate(page: params[:page], per_page: 10)
@users = @search.paginated_resultsIn the view:
<%= will_paginate @users %><% @users.each do |hit| %> <%= hit['_source']['name'] %><% end %>You can also pass from / size directly in the search body and skip .paginate:
@search = UsersIndex.search(body: { query: {}, from: 0, size: 10 })@users = @search.paginated_resultsWhat’s added
Methods added to Esse::Search::Query:
.paginate(page:, per_page:)— translate WillPaginate-style pagination into ESfrom/size..paginated_results— returns aWillPaginate::Collectionwrapping the response hits, ready for view helpers.
Version
- Version: 0.0.1
- Ruby:
>= 2.4.0 - Depends on:
esse >= 0.2.4,will_paginate
License
MIT.