summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-05-28 07:44:52 +0000
committerArne Juul <arnej@verizonmedia.com>2020-05-28 08:17:00 +0000
commit18022457c4a6424d7b08eb9ec6d18d42885b8410 (patch)
treef50cdc1fa770ff1e2d1e5d24b2f4e6d6748e9aa5 /searchlib
parentce1d1e4a5f6b314f937ce1713b9fee5c21427192 (diff)
extend SimpleBlueprint: add createFilterSearch that tags iterator
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.cpp11
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.cpp b/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.cpp
index 94cec9a63c5..e605f36c87f 100644
--- a/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.cpp
@@ -42,6 +42,17 @@ SimpleBlueprint::createLeafSearch(const search::fef::TermFieldMatchDataArray &,
return search;
}
+SearchIterator::UP
+SimpleBlueprint::createFilterSearch(bool strict, FilterConstraint constraint) const
+{
+ SimpleSearch *ss = new SimpleSearch(_result);
+ SearchIterator::UP search(ss);
+ ss->tag(_tag +
+ (strict ? "<strict," : "<nostrict,") +
+ (constraint == FilterConstraint::UPPER_BOUND ? "upper>" : "lower>"));
+ return search;
+}
+
SimpleBlueprint::SimpleBlueprint(const SimpleResult &result)
: SimpleLeafBlueprint(FieldSpecBaseList()),
_tag(),
diff --git a/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.h b/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.h
index 2dc2d938bb6..b99be4a9353 100644
--- a/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.h
+++ b/searchlib/src/vespa/searchlib/queryeval/leaf_blueprints.h
@@ -34,6 +34,8 @@ private:
protected:
SearchIterator::UP
createLeafSearch(const search::fef::TermFieldMatchDataArray &tfmda, bool strict) const override;
+ SearchIterator::UP
+ createFilterSearch(bool strict, FilterConstraint constraint) const override;
public:
SimpleBlueprint(const SimpleResult &result);