diff options
author | Arne Juul <arnej@yahooinc.com> | 2023-08-14 19:28:42 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahooinc.com> | 2023-08-14 19:28:42 +0000 |
commit | 0ecb19bc324c1816270a99afd9c2103bf10a0958 (patch) | |
tree | 304e18e56850aaa899ae152e94420ed122d9d648 /searchlib/src/tests/queryeval/nearest_neighbor | |
parent | dcc7ecc2301e29934c7cd049f1d269725dbbd3d9 (diff) |
make one DistanceCalculator per NearestNeighborIterator instance
Diffstat (limited to 'searchlib/src/tests/queryeval/nearest_neighbor')
-rw-r--r-- | searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp b/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp index b9599a0c75d..f3545499231 100644 --- a/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp +++ b/searchlib/src/tests/queryeval/nearest_neighbor/nearest_neighbor_test.cpp @@ -126,11 +126,12 @@ SimpleResult find_matches(Fixture &env, const Value &qtv, double threshold = std auto dff = search::tensor::make_distance_function_factory(DistanceMetric::Euclidean, qtv.cells().type); auto df = dff->for_query_vector(qtv.cells()); threshold = df->convert_threshold(threshold); - DistanceCalculator dist_calc(attr, std::move(df)); NearestNeighborDistanceHeap dh(2); dh.set_distance_threshold(threshold); const GlobalFilter &filter = *env._global_filter; - auto search = NearestNeighborIterator::create(strict, tfmd, dist_calc, dh, filter); + auto search = NearestNeighborIterator::create(strict, tfmd, + std::make_unique<DistanceCalculator>(attr, qtv), + dh, filter); if (strict) { return SimpleResult().searchStrict(*search, attr.getNumDocs()); } else { @@ -253,10 +254,11 @@ std::vector<feature_t> get_rawscores(Fixture &env, const Value &qtv) { auto &tfmd = *(md->resolveTermField(0)); auto &attr = *(env._attr); auto dff = search::tensor::make_distance_function_factory(DistanceMetric::Euclidean, qtv.cells().type); - DistanceCalculator dist_calc(attr, dff->for_query_vector(qtv.cells())); NearestNeighborDistanceHeap dh(2); auto dummy_filter = GlobalFilter::create(); - auto search = NearestNeighborIterator::create(strict, tfmd, dist_calc, dh, *dummy_filter); + auto search = NearestNeighborIterator::create(strict, tfmd, + std::make_unique<DistanceCalculator>(attr, qtv), + dh, *dummy_filter); uint32_t limit = attr.getNumDocs(); uint32_t docid = 1; search->initRange(docid, limit); |