Scrypath (scrypath v0.3.0)

Copy Markdown View Source

Runtime reflection helpers for searchable schemas declared with use Scrypath.

Phase 1 keeps the public runtime surface small:

These functions keep reflection under Scrypath.* modules instead of generating schema-specific runtime verbs.

Examples

iex> config = Scrypath.schema_config(SearchablePost)
iex> config.fields
[:title, :body]

Summary

Functions

backfill(schema_module, opts \\ [])

@spec backfill(
  module(),
  keyword()
) :: {:ok, map()} | {:error, term()}

delete_document(schema_module, document_id, opts \\ [])

@spec delete_document(module(), term(), keyword()) :: {:ok, term()} | {:error, term()}

delete_documents(schema_module, document_ids, opts \\ [])

@spec delete_documents(module(), [term()], keyword()) ::
  {:ok, term()} | {:error, term()}

delete_record(schema_module, record, opts \\ [])

@spec delete_record(module(), struct() | map(), keyword()) ::
  {:ok, term()} | {:error, term()}

document_id_field(schema_module)

@spec document_id_field(module()) :: atom()

document_source(schema_module)

@spec document_source(module()) :: atom()

reindex(schema_module, opts \\ [])

@spec reindex(
  module(),
  keyword()
) :: {:ok, map()} | {:error, term()}

schema_config(schema_module)

@spec schema_config(module()) :: map()

schema_fields(schema_module)

@spec schema_fields(module()) :: [atom()]

schema_settings(schema_module)

@spec schema_settings(module()) :: map()

search(schema_module, text, opts \\ [])

@spec search(module(), String.t(), keyword()) :: {:ok, term()} | {:error, term()}

search!(schema_module, text, opts \\ [])

@spec search!(module(), String.t(), keyword()) :: term()

sync_record(schema_module, record, opts \\ [])

@spec sync_record(module(), struct() | map(), keyword()) ::
  {:ok, term()} | {:error, term()}

sync_records(schema_module, records, opts \\ [])

@spec sync_records(module(), [struct() | map()], keyword()) ::
  {:ok, term()} | {:error, term()}

sync_status(schema_module, opts \\ [])

@spec sync_status(
  module(),
  keyword()
) :: {:ok, Scrypath.Operator.Status.t()} | {:error, term()}