diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-28 22:07:37 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-03-29 13:56:56 +0000 |
commit | d4712740d1281fa3a2fa945dfd3ea4c2182d663c (patch) | |
tree | 1ace22ed894ed094bbb5c1725899124e325781f0 /searchlib/src/tests/queryeval | |
parent | fef814ec263ce1ceca0416251b3204f43ee3ed30 (diff) |
- Let DotProduct,Wand and WeightedSet be Term nodes in the query tree as they really are.
That restricts the nodes to what they can really do and makes them significantly cheaper.
- In addition type conversion of numeric terms is delayed to when it is necessary.
And as next step they can be avoided completely.
Diffstat (limited to 'searchlib/src/tests/queryeval')
5 files changed, 12 insertions, 13 deletions
diff --git a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp index 7414e8b10f2..a05dcc4c6ea 100644 --- a/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp +++ b/searchlib/src/tests/queryeval/dot_product/dot_product_test.cpp @@ -45,9 +45,9 @@ struct DP { } Node::UP createNode() const { - SimpleDotProduct *node = new SimpleDotProduct("view", 0, Weight(0)); + SimpleDotProduct *node = new SimpleDotProduct(tokens.size(), "view", 0, Weight(0)); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, Weight(tokens[i].second)))); + node->addTerm(tokens[i].first, Weight(tokens[i].second)); } return Node::UP(node); } diff --git a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp index cbad6de25bb..167fc706f4d 100644 --- a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp +++ b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp @@ -156,9 +156,9 @@ TEST_F(FakeSearchableTest, require_that_weigheted_set_search_works) { source.addResult("fieldfoo", "friend3", FakeResult().doc(5)); - SimpleWeightedSetTerm weightedSet("fieldfoo", 1, w); - weightedSet.append(Node::UP(new SimpleStringTerm("friend1", "fieldfoo", 2, Weight(1)))); - weightedSet.append(Node::UP(new SimpleStringTerm("friend2", "fieldfoo", 3, Weight(2)))); + SimpleWeightedSetTerm weightedSet(2, "fieldfoo", 1, w); + weightedSet.addTerm("friend1", Weight(1)); + weightedSet.addTerm("friend2", Weight(2)); FieldSpecList fields; fields.add(FieldSpec("fieldfoo", 1, 1)); diff --git a/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp b/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp index 359a7f9c074..24253469dfc 100644 --- a/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp +++ b/searchlib/src/tests/queryeval/getnodeweight/getnodeweight_test.cpp @@ -34,9 +34,9 @@ TEST("test variations of getWeight") EXPECT_EQUAL(42, getWeight(SimpleStringTerm("foo", "bar", 1, Weight(42)))); EXPECT_EQUAL(42, getWeight(SimpleSubstringTerm("foo", "bar", 1, Weight(42)))); EXPECT_EQUAL(42, getWeight(SimpleSuffixTerm("foo", "bar", 1, Weight(42)))); - EXPECT_EQUAL(42, getWeight(SimpleWeightedSetTerm("bar", 1, Weight(42)))); - EXPECT_EQUAL(42, getWeight(SimpleDotProduct("bar", 1, Weight(42)))); - EXPECT_EQUAL(42, getWeight(SimpleWandTerm("bar", 1, Weight(42), 57, 67, 77.7))); + EXPECT_EQUAL(42, getWeight(SimpleWeightedSetTerm(0, "bar", 1, Weight(42)))); + EXPECT_EQUAL(42, getWeight(SimpleDotProduct(0, "bar", 1, Weight(42)))); + EXPECT_EQUAL(42, getWeight(SimpleWandTerm(0, "bar", 1, Weight(42), 57, 67, 77.7))); } TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp b/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp index f2c02d02080..b820a96fab6 100644 --- a/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp +++ b/searchlib/src/tests/queryeval/parallel_weak_and/parallel_weak_and_test.cpp @@ -158,11 +158,10 @@ struct WandBlueprintSpec Node::UP createNode(uint32_t scoresToTrack = 100, score_t scoreThreshold = 0, double thresholdBoostFactor = 1) const { - SimpleWandTerm *node = new SimpleWandTerm("view", 0, Weight(0), + SimpleWandTerm *node = new SimpleWandTerm(tokens.size(), "view", 0, Weight(0), scoresToTrack, scoreThreshold, thresholdBoostFactor); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, - Weight(tokens[i].second)))); + node->addTerm(tokens[i].first, Weight(tokens[i].second)); } return Node::UP(node); } diff --git a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp index 8514a221230..95553f68cbc 100644 --- a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp +++ b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp @@ -53,9 +53,9 @@ struct WS { } Node::UP createNode() const { - SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm("view", 0, Weight(0)); + SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm(tokens.size(), "view", 0, Weight(0)); for (size_t i = 0; i < tokens.size(); ++i) { - node->append(Node::UP(new SimpleStringTerm(tokens[i].first, "view", 0, Weight(tokens[i].second)))); + node->addTerm(tokens[i].first,Weight(tokens[i].second)); } return Node::UP(node); } |