aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-06-18 13:21:28 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-06-19 13:06:30 +0000
commit07d9b0abf288a3926dbb309b6db9c23b32fa30e7 (patch)
tree2b4205d28a0c6e1e640e75f84b3e4f958e60151d /searchlib
parent24f48cc21f234fedef9d28672b6f00df6aa852c3 (diff)
Add template parameter to PostingListEntry in preparation for storing interleaved features in memory posting lists.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/field_index.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/field_index.h5
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.h1
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/posting_iterator.cpp18
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/posting_list_entry.h3
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h23
8 files changed, 29 insertions, 29 deletions
diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_index.cpp b/searchlib/src/vespa/searchlib/memoryindex/field_index.cpp
index 13a7a860d03..7e40a4a2aa1 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/field_index.cpp
+++ b/searchlib/src/vespa/searchlib/memoryindex/field_index.cpp
@@ -127,7 +127,7 @@ FieldIndex::compactFeatures()
const PostingList *tree = _postingListStore.getTreeEntry(pidx);
auto pitr = tree->begin(_postingListStore.getAllocator());
for (; pitr.valid(); ++pitr) {
- const PostingListEntry &posting_entry(pitr.getData());
+ const PostingListEntryType& posting_entry(pitr.getData());
// Filter on which buffers to move features from when
// performing incremental compaction.
@@ -144,7 +144,7 @@ FieldIndex::compactFeatures()
const PostingListKeyDataType *shortArray = _postingListStore.getKeyDataEntry(pidx, clusterSize);
const PostingListKeyDataType *ite = shortArray + clusterSize;
for (const PostingListKeyDataType *it = shortArray; it < ite; ++it) {
- const PostingListEntry &posting_entry(it->getData());
+ const PostingListEntryType& posting_entry(it->getData());
// Filter on which buffers to move features from when
// performing incremental compaction.
diff --git a/searchlib/src/vespa/searchlib/memoryindex/field_index.h b/searchlib/src/vespa/searchlib/memoryindex/field_index.h
index d5df2fa49c8..27ba6b26a37 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/field_index.h
+++ b/searchlib/src/vespa/searchlib/memoryindex/field_index.h
@@ -36,8 +36,9 @@ class OrderedFieldIndexInserter;
class FieldIndex {
public:
// Mapping from docid -> feature ref
- using PostingList = btree::BTreeRoot<uint32_t, PostingListEntry, search::btree::NoAggregated>;
- using PostingListStore = btree::BTreeStore<uint32_t, PostingListEntry,
+ using PostingListEntryType = PostingListEntry<false>;
+ using PostingList = btree::BTreeRoot<uint32_t, PostingListEntryType, search::btree::NoAggregated>;
+ using PostingListStore = btree::BTreeStore<uint32_t, PostingListEntryType,
search::btree::NoAggregated,
std::less<uint32_t>,
btree::BTreeDefaultTraits>;
diff --git a/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp b/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp
index 1d38e88b747..624ae41b990 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp
+++ b/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.cpp
@@ -111,7 +111,7 @@ OrderedFieldIndexInserter::add(uint32_t docId,
assert(_prevDocId == noDocId || _prevDocId < docId ||
(_prevDocId == docId && !_prevAdd));
datastore::EntryRef featureRef = _fieldIndex.addFeatures(features);
- _adds.push_back(PostingListKeyDataType(docId, featureRef));
+ _adds.push_back(PostingListKeyDataType(docId, PostingListEntryType(featureRef)));
_listener.insert(_dItr.getKey()._wordRef, docId);
_prevDocId = docId;
_prevAdd = true;
diff --git a/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.h b/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.h
index 18765f9bae3..9d6be2bcd94 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.h
+++ b/searchlib/src/vespa/searchlib/memoryindex/ordered_field_index_inserter.h
@@ -28,6 +28,7 @@ private:
using PostingListStore = FieldIndex::PostingListStore;
using KeyComp = FieldIndex::KeyComp;
using WordKey = FieldIndex::WordKey;
+ using PostingListEntryType = FieldIndex::PostingListEntryType;
using PostingListKeyDataType = FieldIndex::PostingListKeyDataType;
FieldIndex &_fieldIndex;
DictionaryTree::Iterator _dItr;
diff --git a/searchlib/src/vespa/searchlib/memoryindex/posting_iterator.cpp b/searchlib/src/vespa/searchlib/memoryindex/posting_iterator.cpp
index 290aa16dfe4..bad3d47b2b9 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/posting_iterator.cpp
+++ b/searchlib/src/vespa/searchlib/memoryindex/posting_iterator.cpp
@@ -74,54 +74,54 @@ PostingIterator::doUnpack(uint32_t docId)
namespace search::btree {
template class BTreeNodeTT<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
BTreeDefaultTraits::INTERNAL_SLOTS>;
template class BTreeLeafNode<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
BTreeDefaultTraits::LEAF_SLOTS>;
template class BTreeNodeStore<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
BTreeDefaultTraits::INTERNAL_SLOTS,
BTreeDefaultTraits::LEAF_SLOTS>;
template class BTreeIteratorBase<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
BTreeDefaultTraits::INTERNAL_SLOTS,
BTreeDefaultTraits::LEAF_SLOTS,
BTreeDefaultTraits::PATH_SIZE>;
template class BTreeIterator<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
std::less<uint32_t>,
BTreeDefaultTraits>;
template class BTree<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
std::less<uint32_t>,
BTreeDefaultTraits>;
template class BTreeRoot<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
std::less<uint32_t>,
BTreeDefaultTraits>;
template class BTreeRootBase<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
BTreeDefaultTraits::INTERNAL_SLOTS,
BTreeDefaultTraits::LEAF_SLOTS>;
template class BTreeNodeAllocator<uint32_t,
- search::memoryindex::PostingListEntry,
+ search::memoryindex::PostingListEntry<false>,
search::btree::NoAggregated,
BTreeDefaultTraits::INTERNAL_SLOTS,
BTreeDefaultTraits::LEAF_SLOTS>;
diff --git a/searchlib/src/vespa/searchlib/memoryindex/posting_list_entry.h b/searchlib/src/vespa/searchlib/memoryindex/posting_list_entry.h
index b28cd87736c..b3f488d4ed7 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/posting_list_entry.h
+++ b/searchlib/src/vespa/searchlib/memoryindex/posting_list_entry.h
@@ -9,11 +9,12 @@ namespace search::memoryindex {
/**
* Entry per document in memory index posting list.
*/
+template <bool has_interleaved_features>
class PostingListEntry {
mutable datastore::EntryRef _features; // reference to compressed features
public:
- PostingListEntry(datastore::EntryRef features)
+ explicit PostingListEntry(datastore::EntryRef features)
: _features(features)
{
}
diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp
index f5300430bea..d3d9e5e0bcb 100644
--- a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp
+++ b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.cpp
@@ -267,7 +267,7 @@ FakeMemTreeOccMgr::flush()
}
} else {
if (!itr.valid() || docId < itr.getKey()) {
- tree.insert(itr, docId, i->getFeatureRef());
+ tree.insert(itr, docId, PostingListEntryType(i->getFeatureRef()));
}
}
}
diff --git a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h
index f0363500559..599d2b37ab2 100644
--- a/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h
+++ b/searchlib/src/vespa/searchlib/test/fakedata/fakememtreeocc.h
@@ -9,18 +9,17 @@
#include <vespa/searchlib/bitcompression/compression.h>
#include <vespa/searchlib/bitcompression/posocccompression.h>
-namespace search {
-namespace fakedata {
+namespace search::fakedata {
-class FakeMemTreeOccMgr : public FakeWord::RandomizedWriter
-{
+class FakeMemTreeOccMgr : public FakeWord::RandomizedWriter {
public:
- typedef memoryindex::FieldIndex::PostingList Tree;
- typedef Tree::NodeAllocatorType NodeAllocator;
- typedef memoryindex::FeatureStore FeatureStore;
- typedef datastore::EntryRef EntryRef;
- typedef index::Schema Schema;
- typedef bitcompression::PosOccFieldsParams PosOccFieldsParams;
+ using Tree = memoryindex::FieldIndex::PostingList;
+ using PostingListEntryType = memoryindex::FieldIndex::PostingListEntryType;
+ using NodeAllocator = Tree::NodeAllocatorType;
+ using FeatureStore = memoryindex::FeatureStore;
+ using EntryRef = datastore::EntryRef;
+ using Schema = index::Schema;
+ using PosOccFieldsParams = bitcompression::PosOccFieldsParams;
vespalib::GenerationHandler _generationHandler;
NodeAllocator _allocator;
@@ -179,6 +178,4 @@ public:
queryeval::SearchIterator *createIterator(const fef::TermFieldMatchDataArray &matchData) const override;
};
-} // namespace fakedata
-
-} // namespace search
+}