diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-06-18 13:21:28 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-06-19 13:06:30 +0000 |
commit | 07d9b0abf288a3926dbb309b6db9c23b32fa30e7 (patch) | |
tree | 2b4205d28a0c6e1e640e75f84b3e4f958e60151d /searchlib | |
parent | 24f48cc21f234fedef9d28672b6f00df6aa852c3 (diff) |
Add template parameter to PostingListEntry in preparation for storing interleaved features in memory posting lists.
Diffstat (limited to 'searchlib')
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 +} |