aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp')
-rw-r--r--searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp b/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
index 14de5ec6475..87eec226221 100644
--- a/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
+++ b/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
@@ -97,34 +97,44 @@ struct WandFactory {
struct VespaWandFactory : WandFactory {
uint32_t n;
VespaWandFactory(uint32_t n_in) : n(n_in) {}
+ ~VespaWandFactory() override;
virtual std::string name() const override { return make_string("VESPA WAND (n=%u)", n); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(WeakAndSearch::create(terms, n, true));
}
};
+VespaWandFactory::~VespaWandFactory() = default;
+
struct VespaArrayWandFactory : WandFactory {
uint32_t n;
VespaArrayWandFactory(uint32_t n_in) : n(n_in) {}
+ ~VespaArrayWandFactory() override;
virtual std::string name() const override { return make_string("VESPA ARRAY WAND (n=%u)", n); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(WeakAndSearch::createArrayWand(terms, n, true));
}
};
+VespaArrayWandFactory::~VespaArrayWandFactory() = default;
+
struct VespaHeapWandFactory : WandFactory {
uint32_t n;
VespaHeapWandFactory(uint32_t n_in) : n(n_in) {}
+ ~VespaHeapWandFactory() override;
virtual std::string name() const override { return make_string("VESPA HEAP WAND (n=%u)", n); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(WeakAndSearch::createHeapWand(terms, n, true));
}
};
+VespaHeapWandFactory::~VespaHeapWandFactory() = default;
+
struct VespaParallelWandFactory : public WandFactory {
SharedWeakAndPriorityQueue scores;
TermFieldMatchData rootMatchData;
VespaParallelWandFactory(uint32_t n) : scores(n), rootMatchData() {}
+ ~VespaParallelWandFactory() override;
virtual std::string name() const override { return make_string("VESPA PWAND (n=%u)", scores.getScoresToTrack()); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(ParallelWeakAndSearch::create(terms,
@@ -133,8 +143,11 @@ struct VespaParallelWandFactory : public WandFactory {
}
};
+VespaParallelWandFactory::~VespaParallelWandFactory() = default;
+
struct VespaParallelArrayWandFactory : public VespaParallelWandFactory {
VespaParallelArrayWandFactory(uint32_t n) : VespaParallelWandFactory(n) {}
+ ~VespaParallelArrayWandFactory() override;
virtual std::string name() const override { return make_string("VESPA ARRAY PWAND (n=%u)", scores.getScoresToTrack()); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(ParallelWeakAndSearch::createArrayWand(terms,
@@ -143,8 +156,11 @@ struct VespaParallelArrayWandFactory : public VespaParallelWandFactory {
}
};
+VespaParallelArrayWandFactory::~VespaParallelArrayWandFactory() = default;
+
struct VespaParallelHeapWandFactory : public VespaParallelWandFactory {
VespaParallelHeapWandFactory(uint32_t n) : VespaParallelWandFactory(n) {}
+ ~VespaParallelHeapWandFactory() override;
virtual std::string name() const override { return make_string("VESPA HEAP PWAND (n=%u)", scores.getScoresToTrack()); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(ParallelWeakAndSearch::createHeapWand(terms,
@@ -153,29 +169,38 @@ struct VespaParallelHeapWandFactory : public VespaParallelWandFactory {
}
};
+VespaParallelHeapWandFactory::~VespaParallelHeapWandFactory() = default;
+
struct TermFrequencyRiseWandFactory : WandFactory {
uint32_t n;
TermFrequencyRiseWandFactory(uint32_t n_in) : n(n_in) {}
+ ~TermFrequencyRiseWandFactory() override;
virtual std::string name() const override { return make_string("RISE WAND TF (n=%u)", n); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(new rise::TermFrequencyRiseWand(terms, n));
}
};
+TermFrequencyRiseWandFactory::~TermFrequencyRiseWandFactory() = default;
+
struct DotProductRiseWandFactory : WandFactory {
uint32_t n;
DotProductRiseWandFactory(uint32_t n_in) : n(n_in) {}
+ ~DotProductRiseWandFactory() override;
virtual std::string name() const override { return make_string("RISE WAND DP (n=%u)", n); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
return SearchIterator::UP(new rise::DotProductRiseWand(terms, n));
}
};
+DotProductRiseWandFactory::~DotProductRiseWandFactory() = default;
+
struct FilterFactory : WandFactory {
WandFactory &factory;
Stats stats;
uint32_t n;
FilterFactory(WandFactory &f, uint32_t n_in) : factory(f), n(n_in) {}
+ ~FilterFactory() override;
virtual std::string name() const override { return make_string("Filter (mod=%u) [%s]", n, factory.name().c_str()); }
virtual SearchIterator::UP create(const wand::Terms &terms) override {
AndNotSearch::Children children;
@@ -185,6 +210,8 @@ struct FilterFactory : WandFactory {
}
};
+FilterFactory::~FilterFactory() = default;
+
struct Setup {
Stats stats;
vespalib::duration minTime;
@@ -223,6 +250,7 @@ struct WandSetup : Setup {
uint32_t weight;
MatchData::UP matchData;
WandSetup(WandFactory &f, uint32_t c, uint32_t l) : Setup(), factory(f), childCnt(c), limit(l), weight(100), matchData() {}
+ ~WandSetup() override;
virtual std::string name() const override {
return make_string("Wand Setup (terms=%u,docs=%u) [%s]", childCnt, limit, factory.name().c_str());
}
@@ -242,4 +270,6 @@ struct WandSetup : Setup {
}
};
+WandSetup::~WandSetup() = default;
+
} // namespace <unnamed>