From fd997a0fa17b84904f77f1f6c998c0b19c3a6f1c Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Tue, 8 May 2018 10:38:53 +0200 Subject: Require termwise to be at the top. --- searchlib/src/vespa/searchlib/queryeval/andnotsearch.h | 8 +++----- searchlib/src/vespa/searchlib/queryeval/andsearch.h | 7 ++----- searchlib/src/vespa/searchlib/queryeval/andsearchnostrict.h | 7 ++----- searchlib/src/vespa/searchlib/queryeval/andsearchstrict.h | 7 ++----- searchlib/src/vespa/searchlib/queryeval/multisearch.h | 1 + searchlib/src/vespa/searchlib/queryeval/ranksearch.cpp | 12 +++++------- searchlib/src/vespa/searchlib/queryeval/ranksearch.h | 9 ++++----- 7 files changed, 19 insertions(+), 32 deletions(-) diff --git a/searchlib/src/vespa/searchlib/queryeval/andnotsearch.h b/searchlib/src/vespa/searchlib/queryeval/andnotsearch.h index e805448ef98..393f86316a7 100644 --- a/searchlib/src/vespa/searchlib/queryeval/andnotsearch.h +++ b/searchlib/src/vespa/searchlib/queryeval/andnotsearch.h @@ -7,8 +7,7 @@ #include #include -namespace search { -namespace queryeval { +namespace search::queryeval { /** * A simple implementation of the AndNot search operation. @@ -34,6 +33,7 @@ public: std::unique_ptr get_hits(uint32_t begin_id) override; void or_hits_into(BitVector &result, uint32_t begin_id) override; + SearchIterator * positive() const { return getChildren()[0]; } private: bool isAndNot() const override { return true; } @@ -71,7 +71,6 @@ public: } void initRange(uint32_t beginid, uint32_t endid) override; private: - SearchIterator * positive() { return getChildren()[0]; } BlackListIterator * blackList() { return static_cast(getChildren()[1]); } template uint32_t internalSeek(uint32_t docid) { @@ -97,6 +96,5 @@ private: void doUnpack(uint32_t docid) override; }; -} // namespace queryeval -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/queryeval/andsearch.h b/searchlib/src/vespa/searchlib/queryeval/andsearch.h index 0f3766e18b4..59c5769a1a2 100644 --- a/searchlib/src/vespa/searchlib/queryeval/andsearch.h +++ b/searchlib/src/vespa/searchlib/queryeval/andsearch.h @@ -5,8 +5,7 @@ #include "multisearch.h" #include "unpackinfo.h" -namespace search { -namespace queryeval { +namespace search::queryeval { /** * A simple implementation of the And search operation. @@ -34,6 +33,4 @@ private: uint32_t _estimate; }; -} // namespace queryeval -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/queryeval/andsearchnostrict.h b/searchlib/src/vespa/searchlib/queryeval/andsearchnostrict.h index 1b1a5e77445..25770a8a3df 100644 --- a/searchlib/src/vespa/searchlib/queryeval/andsearchnostrict.h +++ b/searchlib/src/vespa/searchlib/queryeval/andsearchnostrict.h @@ -4,8 +4,7 @@ #include "andsearch.h" -namespace search { -namespace queryeval { +namespace search::queryeval { /** * A simple implementation of the And search operation. @@ -56,6 +55,4 @@ private: Unpack _unpacker; }; -} // namespace queryeval -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/queryeval/andsearchstrict.h b/searchlib/src/vespa/searchlib/queryeval/andsearchstrict.h index 87be4248a0a..939e8fc5576 100644 --- a/searchlib/src/vespa/searchlib/queryeval/andsearchstrict.h +++ b/searchlib/src/vespa/searchlib/queryeval/andsearchstrict.h @@ -5,8 +5,7 @@ #include "andsearchnostrict.h" #include -namespace search { -namespace queryeval { +namespace search::queryeval { /** * A simple strict implementation of the And search operation. @@ -105,6 +104,4 @@ AndSearchStrict::andWith(SearchIterator::UP filter, uint32_t estimate_) return filter; // Should always be empty, returning it incase logic changes. } -} // namespace queryeval -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/queryeval/multisearch.h b/searchlib/src/vespa/searchlib/queryeval/multisearch.h index d67f895ddb5..c6cd7eda82e 100644 --- a/searchlib/src/vespa/searchlib/queryeval/multisearch.h +++ b/searchlib/src/vespa/searchlib/queryeval/multisearch.h @@ -37,6 +37,7 @@ public: virtual bool isAnd() const { return false; } virtual bool isAndNot() const { return false; } virtual bool isOr() const { return false; } + virtual bool isRank() const { return false; } void insert(size_t index, SearchIterator::UP search); virtual bool needUnpack(size_t index) const { (void) index; return true; } void initRange(uint32_t beginId, uint32_t endId) override; diff --git a/searchlib/src/vespa/searchlib/queryeval/ranksearch.cpp b/searchlib/src/vespa/searchlib/queryeval/ranksearch.cpp index f499845df1f..d9853f88488 100644 --- a/searchlib/src/vespa/searchlib/queryeval/ranksearch.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/ranksearch.cpp @@ -2,13 +2,12 @@ #include "ranksearch.h" -namespace search { -namespace queryeval { +namespace search::queryeval { void RankSearch::doSeek(uint32_t docid) { - SearchIterator & firstChild(**getChildren().begin()); + SearchIterator & firstChild(*mandatory()); if (firstChild.seek(docid)) { setDocId(docid); } @@ -39,13 +38,13 @@ public: SearchIterator::UP RankSearchStrict::andWith(UP filter, uint32_t estimate) { - return getChildren()[0]->andWith(std::move(filter), estimate); + return mandatory()->andWith(std::move(filter), estimate); } void RankSearchStrict::doSeek(uint32_t docid) { - SearchIterator & firstChild(**getChildren().begin()); + SearchIterator & firstChild(*mandatory()); setDocId(firstChild.seek(docid) ? docid : firstChild.getDocId()); } } // namespace @@ -59,5 +58,4 @@ RankSearch::create(const RankSearch::Children &children, bool strict) { } } -} // namespace queryeval -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/queryeval/ranksearch.h b/searchlib/src/vespa/searchlib/queryeval/ranksearch.h index 4d5bb3d3bf9..2b5c80633f2 100644 --- a/searchlib/src/vespa/searchlib/queryeval/ranksearch.h +++ b/searchlib/src/vespa/searchlib/queryeval/ranksearch.h @@ -4,8 +4,7 @@ #include "multisearch.h" -namespace search { -namespace queryeval { +namespace search::queryeval { /** * A simple implementation of the Rank search operation. @@ -26,8 +25,8 @@ protected: public: // Caller takes ownership of the returned SearchIterator. static SearchIterator *create(const Children &children, bool strict); + SearchIterator * mandatory() const { return getChildren()[0]; } + bool isRank() const override { return true; } }; -} // namespace queryeval -} // namespace search - +} -- cgit v1.2.3