searchSimilar method
Search for similar documents.
filter is an optional payload predicate. Honored on every native
platform (qdrant-edge backend). Silently ignored on Web (the wa-sqlite
store has no payload filtering); passing a non-empty filter on Web
returns the same hits as filter: null and never throws.
Implementation
@override
Future<List<RetrievalResult>> searchSimilar({
required String query,
int topK = 5,
double threshold = 0.0,
Filter? filter,
}) async {
if (initializedEmbeddingModel == null) {
throw StateError(
'EmbeddingModel not initialized. Call createEmbeddingModel first.');
}
final queryEmbedding =
await initializedEmbeddingModel!.generateEmbedding(query);
return await ServiceRegistry.instance.vectorStoreRepository.searchSimilar(
queryEmbedding: queryEmbedding,
topK: topK,
threshold: threshold,
filter: filter,
);
}