aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval/nearest_neighbor
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-08-14 19:28:42 +0000
committerArne Juul <arnej@yahooinc.com>2023-08-14 19:28:42 +0000
commit0ecb19bc324c1816270a99afd9c2103bf10a0958 (patch)
tree304e18e56850aaa899ae152e94420ed122d9d648 /searchlib/src/tests/queryeval/nearest_neighbor
parentdcc7ecc2301e29934c7cd049f1d269725dbbd3d9 (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.cpp10
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);