diff options
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp index 36d970dfd01..540a7a86104 100644 --- a/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp +++ b/searchlib/src/vespa/searchlib/tensor/hnsw_index.cpp @@ -227,11 +227,13 @@ HnswIndex::search_layer(const TypedCells& input, uint32_t neighbors_to_find, NearestPriQ candidates; uint32_t doc_id_limit = _graph.node_refs.size(); if (filter) { - assert(filter->size() >= doc_id_limit); + doc_id_limit = std::min(filter->size(), doc_id_limit); } auto visited = _visited_set_pool.get(doc_id_limit); for (const auto &entry : best_neighbors.peek()) { - assert(entry.docid < doc_id_limit); + if (entry.docid >= doc_id_limit) { + continue; + } candidates.push(entry); visited.mark(entry.docid); if (filter && !filter->testBit(entry.docid)) { |