项目作者: ikeikeikeike

项目描述 :
pagination
高级语言: Elixir
项目地址: git://github.com/ikeikeikeike/scrivener_esx.git
创建时间: 2016-11-22T03:28:53Z
项目社区:https://github.com/ikeikeikeike/scrivener_esx

开源协议:MIT License

下载


Scrivener.ESx

Build Status
Hex version
Inline docs
Lisence

Installation

If available in Hex, the package can be installed as:

  1. Add scrivener_esx to your list of dependencies in mix.exs:

    1. def deps do
    2. [{:scrivener_esx, "~> 0.1.0"}]
    3. end
  2. Ensure scrivener_esx is started before your application:

    1. def application do
    2. [applications: [:scrivener_esx]]
    3. end

Usage

  1. defmodule MyApp.ESx do
  2. use ESx.Model.Base, app: :my_app
  3. use Scrivener, page_size: 10
  4. end
  1. defmodule MyApp.Blog do
  2. use MyApp.Web, :model
  3. use ESx.Schema
  4. schema "blogs" do
  5. field :title, :string
  6. field :content, :string
  7. field :publish, :boolean
  8. timestamps
  9. end
  10. mapping do
  11. indexes :title, type: "string"
  12. indexes :content, type: "string"
  13. indexes :publish, type: "boolean"
  14. end
  1. def index(conn, params) do
  2. page =
  3. MyApp.Blog
  4. |> MyApp.ESx.search(%{query: %{match: %{title: "foo"}}})
  5. |> MyApp.ESx.paginate(params)
  6. render conn, :index,
  7. people: page.entries,
  8. page_number: page.page_number,
  9. page_size: page.page_size,
  10. total_pages: page.total_pages,
  11. total_entries: page.total_entries
  12. end
  1. page =
  2. MyApp.Blog
  3. |> MyApp.ESx.search(%{query: %{match: %{title: "foo"}}})
  4. |> MyApp.ESx.paginate(page: 2, page_size: 5)