From 9fd989bfb6490b364026ba3031648aedf7f4ad8a Mon Sep 17 00:00:00 2001 From: Arne H Juul Date: Fri, 12 Nov 2021 13:09:14 +0000 Subject: use more accessors * use getDocId() instead of directly accessing _docId some places * use getRank() instead of directly accessing _rankValue some places --- .../attribute/searchcontext/searchcontext_test.cpp | 34 +++++++++++----------- searchlib/src/tests/grouping/grouping_test.cpp | 2 +- .../groupingengine/groupingengine_benchmark.cpp | 2 +- .../tests/groupingengine/groupingengine_test.cpp | 2 +- .../src/tests/hitcollector/hitcollector_test.cpp | 4 +-- searchlib/src/tests/sortresults/sorttest.cpp | 6 ++-- searchlib/src/tests/sortspec/multilevelsort.cpp | 10 +++---- .../src/vespa/searchlib/aggregation/grouping.cpp | 4 +-- .../vespa/searchlib/attribute/loadedenumvalue.h | 2 +- .../src/vespa/searchlib/attribute/loadedvalue.h | 3 +- .../src/vespa/searchlib/common/sortresults.cpp | 20 ++++++------- .../src/vespa/searchlib/fef/termfieldmatchdata.cpp | 2 +- .../searchlib/memoryindex/field_index_remover.h | 1 + .../src/vespa/searchlib/queryeval/hitcollector.cpp | 2 +- .../vespa/searchlib/test/fakedata/fakememtreeocc.h | 4 +-- 15 files changed, 50 insertions(+), 48 deletions(-) (limited to 'searchlib') diff --git a/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp b/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp index 4076194542a..de54386e4af 100644 --- a/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp +++ b/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp @@ -487,7 +487,7 @@ SearchContextTest::checkResultSet(const ResultSet & rs, const DocSet & expected, ASSERT_TRUE(array != nullptr); uint32_t i = 0; for (auto iter = expected.begin(); iter != expected.end(); ++iter, ++i) { - EXPECT_TRUE(array[i]._docId == *iter); + EXPECT_TRUE(array[i].getDocId() == *iter); } } } @@ -1517,10 +1517,10 @@ SearchContextTest::requireThatSearchIsWorkingAfterClearDoc(const vespalib::strin EXPECT_EQUAL(4u, rs->getNumHits()); ASSERT_TRUE(4u == rs->getNumHits()); const RankedHit * array = rs->getArray(); - EXPECT_EQUAL(1u, array[0]._docId); - EXPECT_EQUAL(2u, array[1]._docId); - EXPECT_EQUAL(3u, array[2]._docId); - EXPECT_EQUAL(4u, array[3]._docId); + EXPECT_EQUAL(1u, array[0].getDocId()); + EXPECT_EQUAL(2u, array[1].getDocId()); + EXPECT_EQUAL(3u, array[2].getDocId()); + EXPECT_EQUAL(4u, array[3].getDocId()); } a->clearDoc(1); a->clearDoc(3); @@ -1529,8 +1529,8 @@ SearchContextTest::requireThatSearchIsWorkingAfterClearDoc(const vespalib::strin ResultSetPtr rs = performSearch(v, term); EXPECT_EQUAL(2u, rs->getNumHits()); const RankedHit * array = rs->getArray(); - EXPECT_EQUAL(2u, array[0]._docId); - EXPECT_EQUAL(4u, array[1]._docId); + EXPECT_EQUAL(2u, array[0].getDocId()); + EXPECT_EQUAL(4u, array[1].getDocId()); } } @@ -1578,9 +1578,9 @@ SearchContextTest::requireThatSearchIsWorkingAfterLoadAndClearDoc(const vespalib const RankedHit * array = rs->getArray(); for (uint32_t i = 0; i < 14; ++i) { if (i < 5) { - EXPECT_EQUAL(i + 1, array[i]._docId); + EXPECT_EQUAL(i + 1, array[i].getDocId()); } else - EXPECT_EQUAL(i + 2, array[i]._docId); + EXPECT_EQUAL(i + 2, array[i].getDocId()); } } ValueType buf; @@ -1682,15 +1682,15 @@ SearchContextTest::requireThatFlagAttributeIsWorkingWhenNewDocsAreAdded() { ResultSetPtr rs = performSearch(fa, "<24"); EXPECT_EQUAL(2u, rs->getNumHits()); - EXPECT_EQUAL(1u, rs->getArray()[0]._docId); - EXPECT_EQUAL(2u, rs->getArray()[1]._docId); + EXPECT_EQUAL(1u, rs->getArray()[0].getDocId()); + EXPECT_EQUAL(2u, rs->getArray()[1].getDocId()); } { ResultSetPtr rs = performSearch(fa, "24"); EXPECT_EQUAL(3u, rs->getNumHits()); - EXPECT_EQUAL(1u, rs->getArray()[0]._docId); - EXPECT_EQUAL(2u, rs->getArray()[1]._docId); - EXPECT_EQUAL(4u, rs->getArray()[2]._docId); + EXPECT_EQUAL(1u, rs->getArray()[0].getDocId()); + EXPECT_EQUAL(2u, rs->getArray()[1].getDocId()); + EXPECT_EQUAL(4u, rs->getArray()[2].getDocId()); } } { @@ -1717,15 +1717,15 @@ SearchContextTest::requireThatFlagAttributeIsWorkingWhenNewDocsAreAdded() EXPECT_EQUAL(exp50.size(), rs1->getNumHits()); EXPECT_EQUAL(exp50.size(), rs2->getNumHits()); for (size_t j = 0; j < exp50.size(); ++j) { - EXPECT_EQUAL(exp50[j], rs1->getArray()[j]._docId); - EXPECT_EQUAL(exp50[j], rs2->getArray()[j]._docId); + EXPECT_EQUAL(exp50[j], rs1->getArray()[j].getDocId()); + EXPECT_EQUAL(exp50[j], rs2->getArray()[j].getDocId()); } } { ResultSetPtr rs = performSearch(fa, "60"); EXPECT_EQUAL(exp60.size(), rs->getNumHits()); for (size_t j = 0; j < exp60.size(); ++j) { - EXPECT_EQUAL(exp60[j], rs->getArray()[j]._docId); + EXPECT_EQUAL(exp60[j], rs->getArray()[j].getDocId()); } } } diff --git a/searchlib/src/tests/grouping/grouping_test.cpp b/searchlib/src/tests/grouping/grouping_test.cpp index ef4930de8ce..2eab66cb3b7 100644 --- a/searchlib/src/tests/grouping/grouping_test.cpp +++ b/searchlib/src/tests/grouping/grouping_test.cpp @@ -105,7 +105,7 @@ public: hit._rankValue = rank; _hits.push_back(hit); for (uint32_t pos = (_hits.size() - 1); - pos > 0 && (_hits[pos]._rankValue > _hits[pos - 1]._rankValue); + pos > 0 && (_hits[pos].getRank() > _hits[pos - 1].getRank()); --pos) { std::swap(_hits[pos], _hits[pos - 1]); diff --git a/searchlib/src/tests/groupingengine/groupingengine_benchmark.cpp b/searchlib/src/tests/groupingengine/groupingengine_benchmark.cpp index 66fa359f1a3..e82079073e7 100644 --- a/searchlib/src/tests/groupingengine/groupingengine_benchmark.cpp +++ b/searchlib/src/tests/groupingengine/groupingengine_benchmark.cpp @@ -88,7 +88,7 @@ public: hit._rankValue = rank; _hits.push_back(hit); for (uint32_t pos = (_hits.size() - 1); - pos > 0 && (_hits[pos]._rankValue > _hits[pos - 1]._rankValue); + pos > 0 && (_hits[pos].getRank() > _hits[pos - 1].getRank()); --pos) { std::swap(_hits[pos], _hits[pos - 1]); diff --git a/searchlib/src/tests/groupingengine/groupingengine_test.cpp b/searchlib/src/tests/groupingengine/groupingengine_test.cpp index a0179c36c23..d54b68388e4 100644 --- a/searchlib/src/tests/groupingengine/groupingengine_test.cpp +++ b/searchlib/src/tests/groupingengine/groupingengine_test.cpp @@ -87,7 +87,7 @@ public: hit._rankValue = rank; _hits.push_back(hit); for (uint32_t pos = (_hits.size() - 1); - pos > 0 && (_hits[pos]._rankValue > _hits[pos - 1]._rankValue); + pos > 0 && (_hits[pos].getRank() > _hits[pos - 1].getRank()); --pos) { std::swap(_hits[pos], _hits[pos - 1]); diff --git a/searchlib/src/tests/hitcollector/hitcollector_test.cpp b/searchlib/src/tests/hitcollector/hitcollector_test.cpp index 617e0e85824..ed68c47ea23 100644 --- a/searchlib/src/tests/hitcollector/hitcollector_test.cpp +++ b/searchlib/src/tests/hitcollector/hitcollector_test.cpp @@ -70,8 +70,8 @@ void checkResult(const ResultSet & rs, const std::vector & exp) ASSERT_EQUAL(rs.getArrayUsed(), exp.size()); for (uint32_t i = 0; i < exp.size(); ++i) { - EXPECT_EQUAL(rh[i]._docId, exp[i]._docId); - EXPECT_EQUAL(rh[i]._rankValue + 1.0, exp[i]._rankValue + 1.0); + EXPECT_EQUAL(rh[i].getDocId(), exp[i].getDocId()); + EXPECT_EQUAL(rh[i].getRank() + 1.0, exp[i].getRank() + 1.0); } } else { ASSERT_TRUE(rs.getArray() == nullptr); diff --git a/searchlib/src/tests/sortresults/sorttest.cpp b/searchlib/src/tests/sortresults/sorttest.cpp index cd892800ca5..bbd6d0b72ce 100644 --- a/searchlib/src/tests/sortresults/sorttest.cpp +++ b/searchlib/src/tests/sortresults/sorttest.cpp @@ -41,17 +41,17 @@ test_sort(unsigned int caseNum, unsigned int n, unsigned int ntop) } FastS_SortResults(array, n, ntop); - minmax = array[ntop - 1]._rankValue; + minmax = array[ntop - 1].getRank(); for(i = 0; i < n; i++) { if (i < ntop && i > 0 - && array[i]._rankValue > array[i - 1]._rankValue) { + && array[i].getRank() > array[i - 1].getRank()) { printf("ERROR: rank(%d) > rank(%d)\n", i, i - 1); ok = false; break; } if (i >= ntop && - array[i]._rankValue > minmax) { + array[i].getRank() > minmax) { printf("ERROR: rank(%d) > rank(%d)\n", i, ntop - 1); ok = false; diff --git a/searchlib/src/tests/sortspec/multilevelsort.cpp b/searchlib/src/tests/sortspec/multilevelsort.cpp index f438fce0e7f..576e1d1336c 100644 --- a/searchlib/src/tests/sortspec/multilevelsort.cpp +++ b/searchlib/src/tests/sortspec/multilevelsort.cpp @@ -275,21 +275,21 @@ MultilevelSortTest::sortAndCheck(const std::vector &spec, uint32_t num, for (uint32_t j = 0; j < spec.size(); ++j) { int cmp = 0; if (spec[j]._type == RANK) { - if (hits[i]._rankValue < hits[i+1]._rankValue) { + if (hits[i].getRank() < hits[i+1].getRank()) { cmp = -1; - } else if (hits[i]._rankValue > hits[i+1]._rankValue) { + } else if (hits[i].getRank() > hits[i+1].getRank()) { cmp = 1; } } else if (spec[j]._type == DOCID) { - if (hits[i]._docId < hits[i+1]._docId) { + if (hits[i].getDocId() < hits[i+1].getDocId()) { cmp = -1; - } else if (hits[i]._docId > hits[i+1]._docId) { + } else if (hits[i].getDocId() > hits[i+1].getDocId()) { cmp = 1; } } else { AttributeVector *av = vec[spec[j]._name].get(); cmp = compare(av, spec[j]._type, - hits[i]._docId, hits[i+1]._docId); + hits[i].getDocId(), hits[i+1].getDocId()); } if (spec[j]._asc) { EXPECT_TRUE(cmp <= 0); diff --git a/searchlib/src/vespa/searchlib/aggregation/grouping.cpp b/searchlib/src/vespa/searchlib/aggregation/grouping.cpp index 68098d6c35a..f373b5fc0b3 100644 --- a/searchlib/src/vespa/searchlib/aggregation/grouping.cpp +++ b/searchlib/src/vespa/searchlib/aggregation/grouping.cpp @@ -205,13 +205,13 @@ void Grouping::postProcess() void Grouping::aggregateWithoutClock(const RankedHit * rankedHit, unsigned int len) { for(unsigned int i(0); i < len; i++) { - aggregate(rankedHit[i]._docId, rankedHit[i]._rankValue); + aggregate(rankedHit[i].getDocId(), rankedHit[i].getRank()); } } void Grouping::aggregateWithClock(const RankedHit * rankedHit, unsigned int len) { for(unsigned int i(0); (i < len) && !hasExpired(); i++) { - aggregate(rankedHit[i]._docId, rankedHit[i]._rankValue); + aggregate(rankedHit[i].getDocId(), rankedHit[i].getRank()); } } diff --git a/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h b/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h index b31e726b103..fdf9ab624ad 100644 --- a/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h +++ b/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h @@ -29,7 +29,7 @@ public: uint64_t operator()(const LoadedEnumAttribute &v) { - return (static_cast(v._enum) << 32) | v._docId; + return (static_cast(v._enum) << 32) | v.getDocId(); } }; diff --git a/searchlib/src/vespa/searchlib/attribute/loadedvalue.h b/searchlib/src/vespa/searchlib/attribute/loadedvalue.h index 701ccdc902c..b8f938838d2 100644 --- a/searchlib/src/vespa/searchlib/attribute/loadedvalue.h +++ b/searchlib/src/vespa/searchlib/attribute/loadedvalue.h @@ -103,9 +103,10 @@ public: T _value; uint32_t _eidx; }; + uint32_t _docId; uint32_t _idx; - vespalib::datastore::EntryRef _pidx; + vespalib::datastore::EntryRef _pidx; private: int32_t _weight; Value _value; diff --git a/searchlib/src/vespa/searchlib/common/sortresults.cpp b/searchlib/src/vespa/searchlib/common/sortresults.cpp index 7a54de708d0..7510ae162ce 100644 --- a/searchlib/src/vespa/searchlib/common/sortresults.cpp +++ b/searchlib/src/vespa/searchlib/common/sortresults.cpp @@ -51,7 +51,7 @@ FastS_insertion_sort(RankedHit a[], uint32_t n) for (i=1; i R(a[j-1]._rankValue)) { + while (R(swap.getRank()) > R(a[j-1].getRank())) { a[j] = a[j-1]; if (!(--j)) break;; } @@ -74,13 +74,13 @@ FastS_radixsort(RankedHit a[], uint32_t n, uint32_t ntop) memset(cnt, 0, 256*sizeof(uint32_t)); // Count occurrences [NB: will fail with n < 3] for(i = 0; i < n - 3; i += 4) { - cnt[(R(a[i]._rankValue) >> SHIFT) & 0xFF]++; - cnt[(R(a[i + 1]._rankValue) >> SHIFT) & 0xFF]++; - cnt[(R(a[i + 2]._rankValue) >> SHIFT) & 0xFF]++; - cnt[(R(a[i + 3]._rankValue) >> SHIFT) & 0xFF]++; + cnt[(R(a[i].getRank()) >> SHIFT) & 0xFF]++; + cnt[(R(a[i + 1].getRank()) >> SHIFT) & 0xFF]++; + cnt[(R(a[i + 2].getRank()) >> SHIFT) & 0xFF]++; + cnt[(R(a[i + 3].getRank()) >> SHIFT) & 0xFF]++; } for(; i < n; i++) - cnt[(R(a[i]._rankValue) >> SHIFT) & 0xFF]++; + cnt[(R(a[i].getRank()) >> SHIFT) & 0xFF]++; // Accumulate cnt positions sorted = (cnt[0]==n); @@ -109,14 +109,14 @@ FastS_radixsort(RankedHit a[], uint32_t n, uint32_t ntop) // Grab first element to move j = ptr[i]; swap = a[j]; - k = (R(swap._rankValue) >> SHIFT) & 0xFF; + k = (R(swap.getRank()) >> SHIFT) & 0xFF; // Swap into correct class until cycle completed if (i!=k) { do { temp = a[ptr[k]]; a[ptr[k]++] = swap; - k = (R((swap = temp)._rankValue) >> SHIFT) & 0xFF; + k = (R((swap = temp).getRank()) >> SHIFT) & 0xFF; remain--; } while (i!=k); // Place last element in cycle @@ -265,11 +265,11 @@ FastS_SortSpec::initSortData(const RankedHit *hits, uint32_t n) written = sizeof(hits->_docId) + sizeof(_partitionId); break; case ASC_RANK: - serializeForSort >(hits[i]._rankValue, mySortData); + serializeForSort >(hits[i].getRank(), mySortData); written = sizeof(hits->_rankValue); break; case DESC_RANK: - serializeForSort >(hits[i]._rankValue, mySortData); + serializeForSort >(hits[i].getRank(), mySortData); written = sizeof(hits->_rankValue); break; case ASC_VECTOR: diff --git a/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.cpp b/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.cpp index 77c2aa3072a..ea278ebf607 100644 --- a/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.cpp +++ b/searchlib/src/vespa/searchlib/fef/termfieldmatchdata.cpp @@ -18,7 +18,7 @@ TermFieldMatchData::TermFieldMatchData() : } TermFieldMatchData::TermFieldMatchData(const TermFieldMatchData & rhs) : - _docId(rhs._docId), + _docId(rhs.getDocId()), _fieldId(rhs._fieldId), _flags(rhs._flags), _sz(0), diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_index_remover.h b/searchlib/src/vespa/searchlib/memoryindex/field_index_remover.h index f8328d15289..429eea038c9 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/field_index_remover.h +++ b/searchlib/src/vespa/searchlib/memoryindex/field_index_remover.h @@ -21,6 +21,7 @@ private: struct WordFieldDocTuple { vespalib::datastore::EntryRef _wordRef; uint32_t _docId; + WordFieldDocTuple() noexcept : _wordRef(0), _docId(0) diff --git a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp index b2b1d49bae9..3293019e538 100644 --- a/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/hitcollector.cpp @@ -195,7 +195,7 @@ mergeHitsIntoResultSet(const std::vector &hits, ResultSet &re uint32_t rhCur(0); uint32_t rhEnd(result.getArrayUsed()); for (const auto &hit : hits) { - while (rhCur != rhEnd && result[rhCur]._docId != hit.first) { + while (rhCur != rhEnd && result[rhCur].getDocId() != hit.first) { // just set the iterators right ++rhCur; } diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h index a94f6087a0d..d0a75930ed5 100644 --- a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h +++ b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h @@ -77,8 +77,8 @@ public: bool operator<(const PendingOp &rhs) const { if (_wordIdx != rhs._wordIdx) return _wordIdx < rhs._wordIdx; - if (_docId != rhs._docId) - return _docId < rhs._docId; + if (_docId != rhs.getDocId()) + return _docId < rhs.getDocId(); return _seq < rhs._seq; } }; -- cgit v1.2.3