void TextIndexMergerTestCase::makeMergedAnswer(TermMap& mergedAnswer) { for (size_t j = 0; j < m_nNumEntries; ++j) { TermMap& ans = m_mergeEntries[j]->answer; for (TermMap::const_iterator it2 = ans.begin(); it2 != ans.end(); ++it2) { for (size_t l = 0; l < it2->second.size(); ++l) { if (m_mergeEntries[j]->pDocIdRemapper) { docid_t docId = it2->second[l].first; if (!m_mergeEntries[j]->pDocFilter->test((size_t)docId)) { docId = (*(m_mergeEntries[j]->pDocIdRemapper))[docId]; TermMap::iterator it = mergedAnswer.find(it2->first); if (it == mergedAnswer.end()) { DocVector docVect; mergedAnswer.insert(make_pair(it2->first, docVect)); it = mergedAnswer.find(it2->first); } it->second.push_back(make_pair(docId + m_mergeEntries[j]->newBaseDocId, it2->second[l].second)); } } else { TermMap::iterator it = mergedAnswer.find(it2->first); if (it == mergedAnswer.end()) { DocVector docVect; mergedAnswer.insert(make_pair(it2->first, docVect)); it = mergedAnswer.find(it2->first); } it->second.push_back(make_pair(it2->second[l].first + m_mergeEntries[j]->newBaseDocId, it2->second[l].second)); } // FX_TRACE("==term: %llu, doc: %d, first pos: %d", it2->first, it2->second[l].first, // it2->second[l].second[0]); } } } }