xiaokang commented on code in PR #152:
URL: https://github.com/apache/doris-thirdparty/pull/152#discussion_r1429137157
##########
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:
add comment to explain why change si to src_dir[i]
##########
src/core/CLucene/index/IndexWriter.cpp:
##########
@@ -1618,11 +1606,25 @@ void IndexWriter::mergeTerms(bool hasProx) {
match[matchSize++] = queue->pop();
Term *smallestTerm = match[0]->term;
- // std::wstring ws = smallestTerm->text();
- // std::string name = std::string(ws.begin(), ws.end());
- // std::cout << name << std::endl;
-
SegmentMergeInfo *top = queue->top();
+ if (infoStream != nullptr) {
+ std::wstring ws = smallestTerm->text();
+ std::wstring f = smallestTerm->field();
+ std::string name = std::string(ws.begin(), ws.end());
+ std::string field = std::string(f.begin(), f.end());
+ message("smallestTerm name: " + name);
+ message("smallestTerm field: " + field);
+
+ if (top != nullptr) {
+ Term* topTerm = top->term;
Review Comment:
Are these wstring and string variables just for debug message? If true, add
debug check for performance.
##########
src/core/CLucene/index/IndexWriter.cpp:
##########
@@ -1515,9 +1506,9 @@ void
IndexWriter::addIndexesSegments(std::vector<lucene::store::Directory *> &di
{
SCOPED_LOCK_MUTEX(this->THIS_LOCK)
for (auto dir: dirs) {
- SegmentInfos sis;// read infos from dir
- sis.read(dir);
- segmentInfos->insert(&sis, true);
+ SegmentInfos* sis = new SegmentInfos(); // Create SegmentInfos
on heap
Review Comment:
where is sis deleted?
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]