Vettore.Index behaviour (Vettore v0.3.3)

Copy Markdown View Source

Search index behaviour.

Indexes may keep acceleration state, but ETS remains the canonical record store. Implementations must return Vettore.Result structs.

Summary

Types

context()

@type context() :: map()

Callbacks

close(context)

(optional)
@callback close(context()) :: :ok | {:error, term()}

delete(context, t)

@callback delete(context(), String.t()) :: :ok | {:error, term()}

new(metric, keyword)

@callback new(
  Vettore.Distance.metric(),
  keyword()
) :: {:ok, term()} | {:error, term()}

put(context, t)

@callback put(context(), Vettore.Embedding.t()) :: :ok | {:error, term()}

put_many(context, list)

@callback put_many(context(), [Vettore.Embedding.t()]) :: :ok | {:error, term()}

search(context, list, keyword)

@callback search(context(), [number()], keyword()) ::
  {:ok, [Vettore.Result.t()]} | {:error, term()}