int main(int argc,const char* argv[]) { _START_EASYLOGGINGPP(argc,argv); el::Loggers::addFlag(el::LoggingFlag::ColoredTerminalOutput); el::Loggers::reconfigureAllLoggers(el::ConfigurationType::Format, "%datetime : %msg"); LOG(INFO) << "Parsing command line arguments"; cmdargs_t args = parse_args(argc,argv); LOG(INFO) << "Parsing collection directory " << args.collection_dir; collection col(args.collection_dir); auto patterns = pattern_parser::parse_file<false>(args.pattern_file); LOG(INFO) << "Parsed " << patterns.size() << " patterns from file " << args.pattern_file; /* verify index */ // { // index_sort<> index(col); // verify_index(index,patterns,"SORT"); // } // { // index_wt<> index(col); // verify_index(index,patterns,"WT"); // } // { // index_sada<> index(col); // verify_index(index,patterns,"SADA"); // } { using invidx_type = index_invidx<optpfor_list<128,true>,optpfor_list<128,false>>; index_abspos<eliasfano_list<true>,invidx_type> index(col); verify_index(index,patterns,"ABS-EF"); } { using invidx_type = index_invidx<optpfor_list<128,true>,optpfor_list<128,false>>; index_abspos<eliasfano_sskip_list<32,true>,invidx_type> index(col); verify_index(index,patterns,"ABS-ESSF-64"); } { using invidx_type = index_invidx<optpfor_list<128,true>,optpfor_list<128,false>>; index_abspos<eliasfano_skip_list<64,true>,invidx_type> index(col); verify_index(index,patterns,"ABS-ESF-64"); } // { // using invidx_type = index_invidx<optpfor_list<128,true>,optpfor_list<128,false>>; // index_abspos<uniform_eliasfano_list<128>,invidx_type> index(col); // verify_index(index,patterns,"ABS-UEF-128"); // } // { // using invidx_type = index_invidx<optpfor_list<128,true>,optpfor_list<128,false>>; // index_nextword<eliasfano_list<true>,invidx_type> index(col); // verify_index(index,patterns,"NEXT-EF"); // } return 0; }
bool JsonArray::has_object(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->test_object(); }
bool JsonArray::has_string(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->test_string(); }
JsonObject JsonArray::get_object(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->get_object(); }
JsonArray JsonArray::get_array(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->get_array(); }
std::string JsonArray::get_string(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->get_string(); }
double JsonArray::get_float(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->get_float(); }
JsonObject JsonArray::next_object() { verify_index(index); jsin->seek(positions[index++]); return jsin->get_object(); }
JsonArray JsonArray::next_array() { verify_index(index); jsin->seek(positions[index++]); return jsin->get_array(); }
std::string JsonArray::next_string() { verify_index(index); jsin->seek(positions[index++]); return jsin->get_string(); }
double JsonArray::next_float() { verify_index(index); jsin->seek(positions[index++]); return jsin->get_float(); }
bool JsonArray::has_number(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->test_number(); }
void JsonArray::skip_value() { verify_index(index); ++index; }
json_value_type JsonArray::get_index_type(int i) { verify_index(i); jsin->seek(positions[i]); return jsin->get_next_type(); }