aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2017-09-07 12:26:22 +0000
committerHåvard Pettersen <havardpe@oath.com>2017-09-19 12:31:40 +0000
commit5dfbc2dbfc08fbe79704e210f210a27782a05ee1 (patch)
tree183815a22b1a20e4fe331c242ffcc8f511bfb044 /searchlib
parentd825bb328c94e138ea87301282c85cc4edb5e585 (diff)
enable tagging match data as needed (for re-init/use)
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp13
-rw-r--r--searchlib/src/vespa/searchlib/fef/termfieldmatchdata.h7
2 files changed, 20 insertions, 0 deletions
diff --git a/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp b/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
index 57fb19b7b23..2a6cc2501d8 100644
--- a/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
+++ b/searchlib/src/tests/fef/termfieldmodel/termfieldmodel_test.cpp
@@ -207,4 +207,17 @@ TEST("Access subqueries") {
EXPECT_EQUAL(0ULL, state.f3->getSubqueries());
}
+TEST("require that TermFieldMatchData can be tagged as needed or not") {
+ TermFieldMatchData tfmd;
+ tfmd.setFieldId(123);
+ EXPECT_EQUAL(tfmd.getFieldId(),123u);
+ EXPECT_TRUE(!tfmd.isNotNeeded());
+ tfmd.tagAsNotNeeded();
+ EXPECT_EQUAL(tfmd.getFieldId(),123u);
+ EXPECT_TRUE(tfmd.isNotNeeded());
+ tfmd.tagAsNeeded();
+ EXPECT_EQUAL(tfmd.getFieldId(),123u);
+ EXPECT_TRUE(!tfmd.isNotNeeded());
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.h b/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.h
index 2d91764f7c9..018af889557 100644
--- a/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.h
+++ b/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.h
@@ -258,6 +258,13 @@ public:
}
/**
+ * Tag that this instance is used for ranking.
+ */
+ void tagAsNeeded() {
+ _fieldId = _fieldId & ~0x2000;
+ }
+
+ /**
* Special docId value indicating that no data has been saved yet.
* This should match (or be above) endId() in search::queryeval::SearchIterator.
*