search method

Future<List<SearchResult>> search(
  1. String text, {
  2. int topK = 10,
  3. SearchMode mode = SearchMode.hybrid,
  4. double alpha = 0.7,
  5. MetadataFilter? filter,
})

Embeds text on-device, then runs a search. In hybrid/vector modes the embedding is used as the query vector; text is also passed for BM25.

Implementation

Future<List<SearchResult>> search(
  String text, {
  int topK = 10,
  SearchMode mode = SearchMode.hybrid,
  double alpha = 0.7,
  MetadataFilter? filter,
}) async {
  Float32List? vec;
  if (mode != SearchMode.keywordOnly) {
    vec = await embedder.embed(text, isQuery: true);
  }
  return db.search(
    vec,
    queryText: text,
    topK: topK,
    mode: mode,
    alpha: alpha,
    filter: filter,
  );
}