#include<iostream>
#include<xapian.h>
using namespace std;
int main(int argc , char **argv){
if(argc<3){
cout<<"usage: "<<"<pathto database> <search terms>"<<endl;
}
try{
Xapian::Database database(argv[1]);
Xapian::Enquire enquire(database);
Xapian::Query query(Xapian::Query::OP_OR,argv+2,argc+argv);
/*
vector<string> queryterms; for (int optpos = 2; optpos < argc; optpos++) { queryterms.push_back(argv[optpos]); }
Xapian::Query query(Xapian::Query::OP_OR, queryterms.begin(), queryterms.end());*/
cout<<"performingquery: "<<query.get_description()<<" "<<endl;
enquire.set_query(query);
Xapian::MSet matches = enquire.get_mset(0,10);
cout<<matches.size()<<"result found"<<endl;
for(Xapian::MSet Iteratori = matches.begin();i != matches.end() ;i++){
Xapian::Document document = i.get_document();
cout<<"documentID:"<<*i<<"\t"<<i.get_percent()<<"%["<<document.get_data()<<"]"<<endl;
}
} catch(const Xapian::Error &error){
cout<<"exception:"<<error.get_msg()<<endl;
}
}
g++ -std=c++0x indexer.cpp –o indexout –lxapian
g++ -std=c++0x searcher.cpp –o searchout –lxapian
$ ./quickstartindex proverbs \
> "people who live in glass houses should not throw stones" \
> people live glass house stone
$ ./quickstartindex proverbs \
> "Don't look a gift horse in the mouth" \
> look gift horse mouth
$ ./quickstartsearch proverbs gift
Performing query `look'
1 results found
Document ID 2 100% [Don't look a gift horse in the mouth]