diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-01-09 19:41:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-09 19:41:21 +0100 |
commit | 57a96d0006038bec9a35ab42ed761ccf1b198bf2 (patch) | |
tree | 755ec18b4cc68a2390673f5fe242bd515f333800 /searchlib/src/vespa | |
parent | 0737c627732a4f07d9aff3ccd160a0f6ebc624e3 (diff) | |
parent | 57b9b54286be922494eb13b1deec7928a9a46854 (diff) |
Merge pull request #25462 from vespa-engine/balder/initialize-in-constructor-where-possiblev8.108.22
Initialize in constructor where possible.
Diffstat (limited to 'searchlib/src/vespa')
5 files changed, 25 insertions, 28 deletions
diff --git a/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp b/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp index d27ab2e7787..24d790afe74 100644 --- a/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/field_merger.cpp @@ -321,7 +321,7 @@ FieldMerger::open_field_writer() field_length_info = _readers.back()->get_field_length_info(); } SchemaUtil::IndexIterator index(_fusion_out_index.get_schema(), _id); - if (!_writer->open(_field_dir + "/", 64, 262144, _fusion_out_index.get_dynamic_k_pos_index_format(), + if (!_writer->open(64, 262144, _fusion_out_index.get_dynamic_k_pos_index_format(), index.use_interleaved_features(), index.getSchema(), index.getIndex(), field_length_info, @@ -414,7 +414,7 @@ void FieldMerger::merge_postings_start() { /* OUTPUT */ - _writer = std::make_unique<FieldWriter>(_fusion_out_index.get_doc_id_limit(), _num_word_ids); + _writer = std::make_unique<FieldWriter>(_fusion_out_index.get_doc_id_limit(), _num_word_ids, _field_dir + "/"); _readers.reserve(_fusion_out_index.get_old_indexes().size()); allocate_field_length_scanner(); _open_reader_idx = 0; diff --git a/searchlib/src/vespa/searchlib/diskindex/field_merger.h b/searchlib/src/vespa/searchlib/diskindex/field_merger.h index 347367b3aa5..8d130052003 100644 --- a/searchlib/src/vespa/searchlib/diskindex/field_merger.h +++ b/searchlib/src/vespa/searchlib/diskindex/field_merger.h @@ -41,11 +41,11 @@ class FieldMerger MERGE_DONE }; - uint32_t _id; - vespalib::string _field_name; - vespalib::string _field_dir; - const FusionOutputIndex& _fusion_out_index; - std::shared_ptr<IFlushToken> _flush_token; + const uint32_t _id; + const vespalib::string _field_name; + const vespalib::string _field_dir; + const FusionOutputIndex & _fusion_out_index; + std::shared_ptr<IFlushToken> _flush_token; std::vector<std::unique_ptr<DictionaryWordReader>> _word_readers; std::unique_ptr<PostingPriorityQueueMerger<DictionaryWordReader, WordAggregator>> _word_heap; std::unique_ptr<WordAggregator> _word_aggregator; diff --git a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp index 3442a610f4d..7f6f5c4ed15 100644 --- a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.cpp @@ -16,12 +16,12 @@ namespace search::diskindex { using vespalib::getLastErrorString; using common::FileHeaderContext; -FieldWriter::FieldWriter(uint32_t docIdLimit, uint64_t numWordIds) +FieldWriter::FieldWriter(uint32_t docIdLimit, uint64_t numWordIds, vespalib::stringref prefix) : _dictFile(), _posoccfile(), _bvc(docIdLimit), _bmapfile(BitVectorKeyScope::PERFIELD_WORDS), - _prefix(), + _prefix(prefix), _word(), _numWordIds(numWordIds), _compactWordNum(0), @@ -34,8 +34,7 @@ FieldWriter::FieldWriter(uint32_t docIdLimit, uint64_t numWordIds) FieldWriter::~FieldWriter() = default; bool -FieldWriter::open(const vespalib::string &prefix, - uint32_t minSkipDocs, +FieldWriter::open(uint32_t minSkipDocs, uint32_t minChunkDocs, bool dynamicKPosOccFormat, bool encode_interleaved_features, @@ -45,8 +44,7 @@ FieldWriter::open(const vespalib::string &prefix, const TuneFileSeqWrite &tuneFileWrite, const FileHeaderContext &fileHeaderContext) { - _prefix = prefix; - vespalib::string name = prefix + "posocc.dat.compressed"; + vespalib::string name = _prefix + "posocc.dat.compressed"; PostingListParams params; PostingListParams featureParams; @@ -88,8 +86,7 @@ FieldWriter::open(const vespalib::string &prefix, // Open output boolocc.bdat file vespalib::string booloccbidxname = _prefix + "boolocc"; - _bmapfile.open(booloccbidxname.c_str(), _docIdLimit, tuneFileWrite, - fileHeaderContext); + _bmapfile.open(booloccbidxname.c_str(), _docIdLimit, tuneFileWrite, fileHeaderContext); return true; } diff --git a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h index d541fd59be8..45ab32bc917 100644 --- a/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h +++ b/searchlib/src/vespa/searchlib/diskindex/fieldwriter.h @@ -27,7 +27,7 @@ public: FieldWriter(const FieldWriter &&rhs) = delete; FieldWriter &operator=(const FieldWriter &rhs) = delete; FieldWriter &operator=(const FieldWriter &&rhs) = delete; - FieldWriter(uint32_t docIdLimit, uint64_t numWordIds); + FieldWriter(uint32_t docIdLimit, uint64_t numWordIds, vespalib::stringref prefix); ~FieldWriter(); void newWord(uint64_t wordNum, vespalib::stringref word); @@ -43,7 +43,7 @@ public: uint64_t getSparseWordNum() const { return _wordNum; } - bool open(const vespalib::string &prefix, uint32_t minSkipDocs, uint32_t minChunkDocs, + bool open(uint32_t minSkipDocs, uint32_t minChunkDocs, bool dynamicKPosOccFormat, bool encode_interleaved_features, const Schema &schema, uint32_t indexId, @@ -61,15 +61,15 @@ private: using PostingListCounts = index::PostingListCounts; std::unique_ptr<DictionaryFileSeqWrite> _dictFile; std::unique_ptr<PostingListFileSeqWrite> _posoccfile; - BitVectorCandidate _bvc; - BitVectorFileWrite _bmapfile; - vespalib::string _prefix; - vespalib::string _word; - const uint64_t _numWordIds; - uint64_t _compactWordNum; - uint64_t _wordNum; - uint32_t _prevDocId; - const uint32_t _docIdLimit; + BitVectorCandidate _bvc; + BitVectorFileWrite _bmapfile; + const vespalib::string _prefix; + vespalib::string _word; + const uint64_t _numWordIds; + uint64_t _compactWordNum; + uint64_t _wordNum; + uint32_t _prevDocId; + const uint32_t _docIdLimit; void flush(); static uint64_t noWordNum() { return 0u; } }; diff --git a/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp b/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp index 6815db0ae0c..f552c35e941 100644 --- a/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp +++ b/searchlib/src/vespa/searchlib/diskindex/indexbuilder.cpp @@ -97,9 +97,9 @@ FileHandle::open(vespalib::stringref dir, { assert(_fieldWriter.get() == nullptr); - _fieldWriter = std::make_shared<FieldWriter>(docIdLimit, numWordIds); + _fieldWriter = std::make_shared<FieldWriter>(docIdLimit, numWordIds, dir + "/"); - if (!_fieldWriter->open(dir + "/", 64, 262144u, false, + if (!_fieldWriter->open(64, 262144u, false, index.use_interleaved_features(), index.getSchema(), index.getIndex(), field_length_info, |