summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-02-27 19:23:18 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-03-04 00:58:59 +0000
commit56bc0abbc63a08cae1564d992569f97456b26227 (patch)
treeece295459a8b7733d1927c5d416f4cc01313fcf9
parent572fb49e01a32349a763a51d3992798b00738393 (diff)
andnot_hits_into was more code than worthwile.
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributeiterators.h7
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp50
-rw-r--r--searchlib/src/vespa/searchlib/common/bitvectoriterator.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/common/bitvectoriterator.h3
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/orsearch.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/orsearch.h1
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/searchiterator.cpp23
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/searchiterator.h2
8 files changed, 1 insertions, 98 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attributeiterators.h b/searchlib/src/vespa/searchlib/attribute/attributeiterators.h
index 0a1e4516b12..9b920e318f7 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributeiterators.h
+++ b/searchlib/src/vespa/searchlib/attribute/attributeiterators.h
@@ -26,8 +26,6 @@ protected:
template <typename SC>
void or_hits_into(const SC & sc, BitVector & result, uint32_t begin_id) const;
template <typename SC>
- void andnot_hits_into(const SC & sc, BitVector & result, uint32_t begin_id) const;
- template <typename SC>
std::unique_ptr<BitVector> get_hits(const SC & sc, uint32_t begin_id) const;
void visitMembers(vespalib::ObjectVisitor &visitor) const override;
fef::TermFieldMatchData * _matchData;
@@ -82,7 +80,6 @@ private:
void and_hits_into(BitVector & result, uint32_t begin_id) override;
void or_hits_into(BitVector & result, uint32_t begin_id) override;
std::unique_ptr<BitVector> get_hits(uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
protected:
const SC & _searchContext;
@@ -101,7 +98,6 @@ private:
void visitMembers(vespalib::ObjectVisitor &visitor) const override;
void and_hits_into(BitVector & result, uint32_t begin_id) override;
void or_hits_into(BitVector & result, uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
std::unique_ptr<BitVector> get_hits(uint32_t begin_id) override;
protected:
@@ -220,7 +216,6 @@ private:
std::unique_ptr<BitVector> get_hits(uint32_t begin_id) override;
void or_hits_into(BitVector &result, uint32_t begin_id) override;
void and_hits_into(BitVector &result, uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
public:
// Note: iterator constructor argument is destroyed
@@ -238,7 +233,6 @@ public:
std::unique_ptr<BitVector> get_hits(uint32_t begin_id) override;
void or_hits_into(BitVector &result, uint32_t begin_id) override;
void and_hits_into(BitVector &result, uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
private:
queryeval::MinMaxPostingInfo _postingInfo;
@@ -345,7 +339,6 @@ protected:
void or_hits_into(BitVector &result, uint32_t begin_id) override;
void and_hits_into(BitVector &result, uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
std::unique_ptr<BitVector> get_hits(uint32_t begin_id) override;
public:
diff --git a/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp b/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp
index a985d0e6b89..ca88328f07b 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributeiterators.hpp
@@ -25,11 +25,6 @@ AttributeIteratorBase::or_hits_into(const SC & sc, BitVector & result, uint32_t
result.foreach_falsebit([&](uint32_t key) { if ( sc.cmp(key)) { result.setBit(key); }}, begin_id);
}
-template <typename SC>
-void
-AttributeIteratorBase::andnot_hits_into(const SC & sc, BitVector & result, uint32_t begin_id) const {
- result.foreach_truebit([&](uint32_t key) { if ( sc.cmp(key)) { result.clearBit(key); }}, begin_id);
-}
template <typename SC>
std::unique_ptr<BitVector>
@@ -126,17 +121,6 @@ AttributePostingListIteratorT<PL>::or_hits_into(BitVector & result, uint32_t beg
template <typename PL>
void
-AttributePostingListIteratorT<PL>::andnot_hits_into(BitVector & result, uint32_t begin_id) {
- (void) begin_id;
- for (; _iterator.valid() && _iterator.getKey() < getEndId(); ++_iterator) {
- if ( result.testBit(_iterator.getKey()) ) {
- result.clearBit(_iterator.getKey());
- }
- }
-}
-
-template <typename PL>
-void
AttributePostingListIteratorT<PL>::and_hits_into(BitVector &result, uint32_t begin_id) {
result.andWith(*get_hits(begin_id));
}
@@ -162,16 +146,6 @@ FilterAttributePostingListIteratorT<PL>::or_hits_into(BitVector & result, uint32
}
}
-template <typename PL>
-void
-FilterAttributePostingListIteratorT<PL>::andnot_hits_into(BitVector & result, uint32_t begin_id) {
- (void) begin_id;
- for (; _iterator.valid() && _iterator.getKey() < getEndId(); ++_iterator) {
- if ( result.testBit(_iterator.getKey()) ) {
- result.clearBit(_iterator.getKey());
- }
- }
-}
template <typename PL>
void
@@ -324,19 +298,6 @@ FlagAttributeIteratorT<SC>::and_hits_into(BitVector &result, uint32_t begin_id)
}
template <typename SC>
-void
-FlagAttributeIteratorT<SC>::andnot_hits_into(BitVector &result, uint32_t begin_id) {
- const SC & sc(_sc);
- const typename SC::Attribute &attr = static_cast<const typename SC::Attribute &>(sc.attribute());
- for (int i = sc._low; i < sc._high; i++) {
- const BitVector * bv = attr.getBitVector(i);
- if (bv != NULL) {
- result.andNotWith(*bv);
- }
- }
-}
-
-template <typename SC>
std::unique_ptr<BitVector>
FlagAttributeIteratorT<SC>::get_hits(uint32_t begin_id) {
const SC & sc(_sc);
@@ -451,16 +412,5 @@ FilterAttributeIteratorT<SC>::and_hits_into(BitVector & result, uint32_t begin_i
AttributeIteratorBase::and_hits_into(_searchContext, result, begin_id);
}
-template <typename SC>
-void
-AttributeIteratorT<SC>::andnot_hits_into(BitVector & result, uint32_t begin_id) {
- AttributeIteratorBase::andnot_hits_into(_searchContext, result, begin_id);
-}
-
-template <typename SC>
-void
-FilterAttributeIteratorT<SC>::andnot_hits_into(BitVector & result, uint32_t begin_id) {
- AttributeIteratorBase::andnot_hits_into(_searchContext, result, begin_id);
-}
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/common/bitvectoriterator.cpp b/searchlib/src/vespa/searchlib/common/bitvectoriterator.cpp
index 9c4627835d7..d1dffa3832d 100644
--- a/searchlib/src/vespa/searchlib/common/bitvectoriterator.cpp
+++ b/searchlib/src/vespa/searchlib/common/bitvectoriterator.cpp
@@ -125,10 +125,4 @@ void BitVectorIterator::and_hits_into(BitVector &result, uint32_t begin_id) {
result.andWith(_bv);
}
-void BitVectorIterator::andnot_hits_into(BitVector &result, uint32_t begin_id) {
- (void) begin_id;
- result.andNotWith(_bv);
-}
-
-
} // namespace search
diff --git a/searchlib/src/vespa/searchlib/common/bitvectoriterator.h b/searchlib/src/vespa/searchlib/common/bitvectoriterator.h
index 76f2e21c0c2..92b3dfbf3fa 100644
--- a/searchlib/src/vespa/searchlib/common/bitvectoriterator.h
+++ b/searchlib/src/vespa/searchlib/common/bitvectoriterator.h
@@ -2,8 +2,8 @@
#pragma once
-#include <vespa/searchlib/queryeval/searchiterator.h>
#include "bitvector.h"
+#include <vespa/searchlib/queryeval/searchiterator.h>
namespace search {
@@ -26,7 +26,6 @@ private:
BitVector::UP get_hits(uint32_t begin_id) override;
void or_hits_into(BitVector &result, uint32_t begin_id) override;
void and_hits_into(BitVector &result, uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
bool isBitVector() const override { return true; }
fef::TermFieldMatchData &_tfmd;
public:
diff --git a/searchlib/src/vespa/searchlib/queryeval/orsearch.cpp b/searchlib/src/vespa/searchlib/queryeval/orsearch.cpp
index 967e3136fa8..5d30598db07 100644
--- a/searchlib/src/vespa/searchlib/queryeval/orsearch.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/orsearch.cpp
@@ -85,13 +85,6 @@ void
OrSearch::and_hits_into(BitVector &result, uint32_t begin_id) {
result.andWith(*get_hits(begin_id));
}
-
-void
-OrSearch::andnot_hits_into(BitVector &result, uint32_t begin_id) {
- for (SearchIterator * child : getChildren()) {
- child->andnot_hits_into(result, begin_id);
- }
-}
void
OrSearch::or_hits_into(BitVector &result, uint32_t begin_id)
diff --git a/searchlib/src/vespa/searchlib/queryeval/orsearch.h b/searchlib/src/vespa/searchlib/queryeval/orsearch.h
index d4af6c35490..3452ae1ab96 100644
--- a/searchlib/src/vespa/searchlib/queryeval/orsearch.h
+++ b/searchlib/src/vespa/searchlib/queryeval/orsearch.h
@@ -23,7 +23,6 @@ public:
std::unique_ptr<BitVector> get_hits(uint32_t begin_id) override;
void or_hits_into(BitVector &result, uint32_t begin_id) override;
void and_hits_into(BitVector &result, uint32_t begin_id) override;
- void andnot_hits_into(BitVector &result, uint32_t begin_id) override;
protected:
OrSearch(const Children & children) : MultiSearch(children) { }
diff --git a/searchlib/src/vespa/searchlib/queryeval/searchiterator.cpp b/searchlib/src/vespa/searchlib/queryeval/searchiterator.cpp
index 21f031f76a3..5ab9fd4850a 100644
--- a/searchlib/src/vespa/searchlib/queryeval/searchiterator.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/searchiterator.cpp
@@ -78,29 +78,6 @@ SearchIterator::and_hits_into(BitVector &result, uint32_t begin_id)
}
}
-void
-SearchIterator::andnot_hits_into(BitVector &result, uint32_t begin_id)
-{
- uint32_t docidA = begin_id - 1;
- uint32_t docidB = result.getNextTrueBit(begin_id);
- while (!isAtEnd(docidA) && !isAtEnd(docidB)) {
- if (docidA < docidB) {
- if (seek(docidB)) {
- docidA = docidB;
- } else if (getDocId() > docidB) {
- docidA = getDocId();
- } else {
- docidB = result.getNextTrueBit(docidB+1);
- }
- } else if (docidA > docidB) {
- docidB = result.getNextTrueBit(docidA);
- } else {
- result.clearBit(docidB);
- docidB = result.getNextTrueBit(docidB+1);
- }
- }
-}
-
vespalib::string
SearchIterator::asString() const
{
diff --git a/searchlib/src/vespa/searchlib/queryeval/searchiterator.h b/searchlib/src/vespa/searchlib/queryeval/searchiterator.h
index acf28133ee3..83818c5d9cc 100644
--- a/searchlib/src/vespa/searchlib/queryeval/searchiterator.h
+++ b/searchlib/src/vespa/searchlib/queryeval/searchiterator.h
@@ -165,8 +165,6 @@ public:
**/
virtual void and_hits_into(BitVector &result, uint32_t begin_id);
- virtual void andnot_hits_into(BitVector &result, uint32_t begin_id);
-
public:
typedef std::unique_ptr<SearchIterator> UP;