View Source Bonfire.Search.Adapter behaviour (Bonfire v0.9.11-social-beta.6)

Behaviour defining the interface for search adapters in Bonfire. Adapters must implement all these callbacks to provide search functionality.

Summary

Types

facets()

@type facets() :: map() | list() | nil

index()

@type index() :: atom() | binary()

object()

@type object() :: map() | struct()

search_opts()

@type search_opts() :: map() | keyword()

search_result()

@type search_result() :: map() | nil

Callbacks

create_index(binary, boolean)

(optional)
@callback create_index(binary(), boolean()) :: {:ok, map()} | {:error, term()}

delete(binary, binary)

(optional)
@callback delete(binary(), binary()) :: {:ok, map()} | {:error, term()}

index_exists(binary)

(optional)
@callback index_exists(binary()) :: boolean()

put_documents(object, binary)

(optional)
@callback put_documents(object(), binary()) :: {:ok, map()} | {:error, term()}

search(binary, search_opts)

@callback search(binary(), search_opts()) :: search_result()
@callback search(binary(), index()) :: search_result()

search(binary, search_opts, boolean, facets)

@callback search(binary(), search_opts(), boolean(), facets()) :: search_result()

search_by_type(binary, facets)

@callback search_by_type(binary(), facets()) :: list()

set_facets(binary, arg2)

(optional)
@callback set_facets(binary(), list() | binary()) :: {:ok, map()} | {:error, term()}

set_searchable_fields(binary, list)

(optional)
@callback set_searchable_fields(binary(), list()) :: {:ok, map()} | {:error, term()}