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