Search index behaviour.
Indexes may keep acceleration state, but ETS remains the canonical record
store. Implementations must return Vettore.Result structs.
Summary
Types
@type context() :: map()
Callbacks
@callback new( Vettore.Distance.metric(), keyword() ) :: {:ok, term()} | {:error, term()}
@callback put(context(), Vettore.Embedding.t()) :: :ok | {:error, term()}
@callback put_many(context(), [Vettore.Embedding.t()]) :: :ok | {:error, term()}
@callback search(context(), [number()], keyword()) :: {:ok, [Vettore.Result.t()]} | {:error, term()}