Пример #1
0
 RankFixture(size_t fooCnt, size_t barCnt, const Labels &labels)
     : queryEnv(&indexEnv), rankSetup(factory, indexEnv),
       mdl(), match_data(), rankProgram(), fooHandles(), barHandles()
 {
     for (size_t i = 0; i < fooCnt; ++i) {
         uint32_t fieldId = indexEnv.getFieldByName("foo")->id();
         fooHandles.push_back(mdl.allocTermField(fieldId));
         SimpleTermData term;
         term.setUniqueId(i + 1);
         term.addField(fieldId).setHandle(fooHandles.back());
         queryEnv.getTerms().push_back(term);
     }
     for (size_t i = 0; i < barCnt; ++i) { 
         uint32_t fieldId = indexEnv.getFieldByName("bar")->id();
         barHandles.push_back(mdl.allocTermField(fieldId));
         SimpleTermData term;
         term.setUniqueId(fooCnt + i + 1);
         term.addField(fieldId).setHandle(barHandles.back());
         queryEnv.getTerms().push_back(term);
     }
     labels.inject(queryEnv.getProperties());
     rankSetup.setFirstPhaseRank(featureName);
     rankSetup.setIgnoreDefaultRankFeatures(true);
     ASSERT_TRUE(rankSetup.compile());
     match_data = mdl.createMatchData();
     rankProgram = rankSetup.create_first_phase_program();
     rankProgram->setup(*match_data, queryEnv);
 }