qidaye commented on code in PR #152: URL: https://github.com/apache/doris-thirdparty/pull/152#discussion_r1429155369
########## src/core/CLucene/index/IndexWriter.cpp: ########## @@ -1246,39 +1246,30 @@ void IndexWriter::indexCompaction(std::vector<lucene::store::Directory *> &src_d CND_CONDITION(dest_dirs.size() > 0, "Destination directory not found."); this->_trans_vec = std::move(trans_vec); - // order mapping: dir -> segment info -> segment reader - addIndexesSegments(src_dirs); - // create segment readers - int32_t totDocCount = 0; - int numSegments = segmentInfos->size(); - assert(numSegments > 0); + int numIndices = src_dirs.size(); //Set of IndexReaders if (infoStream != NULL) { - message(string("src index dir size: ") + Misc::toString(numSegments)); + message(string("src index dir size: ") + Misc::toString(numIndices)); } - for (int32_t i = 0; i < numSegments; i++) { - SegmentInfo *si = segmentInfos->info(i); - IndexReader *reader = SegmentReader::get(si, MERGE_READ_BUFFER_SIZE, false /* mergeDocStores */); + for (int32_t i = 0; i < numIndices; i++) { + IndexReader* reader = lucene::index::IndexReader::open(src_dirs[i], MERGE_READ_BUFFER_SIZE, false); readers.push_back(reader); - totDocCount += reader->numDocs(); if (infoStream != NULL) { message(src_dirs[i]->toString()); } } - if (infoStream != NULL) { - message(string("index compaction total doc count: ") + Misc::toString(totDocCount)); - } + assert(readers.size() == numIndices); // check hasProx bool hasProx = false; { if (!readers.empty()) { - auto reader = static_cast<SegmentReader*>(readers[0]); - hasProx = reader->getFieldInfos()->hasProx(); + IndexReader* reader = readers[0]; + hasProx = reader->hasProx(); Review Comment: Remove this API and use `reader->getFieldInfos()->hasProx()` instead. ########## src/core/CLucene/index/IndexWriter.cpp: ########## @@ -1246,39 +1246,30 @@ void IndexWriter::indexCompaction(std::vector<lucene::store::Directory *> &src_d CND_CONDITION(dest_dirs.size() > 0, "Destination directory not found."); this->_trans_vec = std::move(trans_vec); - // order mapping: dir -> segment info -> segment reader - addIndexesSegments(src_dirs); - // create segment readers - int32_t totDocCount = 0; - int numSegments = segmentInfos->size(); - assert(numSegments > 0); + int numIndices = src_dirs.size(); //Set of IndexReaders if (infoStream != NULL) { - message(string("src index dir size: ") + Misc::toString(numSegments)); + message(string("src index dir size: ") + Misc::toString(numIndices)); } - for (int32_t i = 0; i < numSegments; i++) { - SegmentInfo *si = segmentInfos->info(i); - IndexReader *reader = SegmentReader::get(si, MERGE_READ_BUFFER_SIZE, false /* mergeDocStores */); + for (int32_t i = 0; i < numIndices; i++) { + IndexReader* reader = lucene::index::IndexReader::open(src_dirs[i], MERGE_READ_BUFFER_SIZE, false); Review Comment: Done. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@doris.apache.org For additional commands, e-mail: dev-h...@doris.apache.org