search method
Implementation
Future<List<ChunkSearchResult>> search({
String? text,
int limit = 10,
}) async {
if (text == null) {
throw ArgumentError('text must be provided.');
}
if (_embeddingGenerator == null) {
throw Exception('Embedding generator not set. Call setEmbeddingGenerator() first.');
}
final queryEmbedding = await _embeddingGenerator!(text);
// Use ObjectBox's native vector search with HNSW index
final query = chunkBox
.query(DocumentChunk_.embeddings.nearestNeighborsF32(queryEmbedding, limit))
.build();
final results = query.findWithScores();
query.close();
return results.map((result) => ChunkSearchResult(
chunk: result.object,
distance: result.score,
)).toList();
}