Voile.Schema.Search (Voile v0.1.23)

Copy Markdown View Source

The Search context for handling search operations across the application. Provides search functionality for both librarians and patrons with role-based filtering.

Summary

Functions

Advanced search with field-specific queries. Allows searching specific fields like title, description, creator, etc.

Search collections with optional filters.

Search items with optional filters.

Universal search across collections and items. Returns a combined result set with type indicators.

Functions

advanced_search(search_params, opts \\ %{})

Advanced search with field-specific queries. Allows searching specific fields like title, description, creator, etc.

Examples

iex> advanced_search(%{title: "physics", creator: "einstein"})
%{results: [...], total: 2}

search_collections(query_string, opts \\ %{})

Search collections with optional filters.

Parameters

  • query_string: The search term
  • opts: Additional options like pagination, filters, etc.

Examples

iex> search_collections("science", %{page: 1, per_page: 10})
%{results: [%Collection{}], total: 5, page: 1, total_pages: 1}

search_items(query_string, opts \\ %{})

Search items with optional filters.

Parameters

  • query_string: The search term
  • opts: Additional options like pagination, filters, etc.

Examples

iex> search_items("programming", %{status: "available"})
%{results: [%Item{}], total: 12, page: 1, total_pages: 2}

universal_search(query_string, opts \\ %{})

Universal search across collections and items. Returns a combined result set with type indicators.

Examples

iex> universal_search("history", %{page: 1})
%{
  collections: %{results: [...], total: 3},
  items: %{results: [...], total: 8},
  total_results: 11
}