#include<iostream>
#include<xapian.h>
#include<vector>
#include<string>
#include<fstream>
using namespace std;
int main(int argc , char **argv){
try{
Xapian::WritableDatabase database(argv[1],Xapian::DB_CREATE_OR_OPEN);
//分词器
Xapian::TermGenerator indexer;
Xapian::Stem stemmer("english");
indexer.set_stemmer(stemmer);
Xapian::Document doc1,doc2,doc3,doc4,doc5;
vector<Xapian::Document>doc = {doc1,doc2,doc3,doc4,doc5};
vector<string>path1 ={"/usr/local/txtdata/txt1","/usr/local/txtdata/txt2","/usr/local/txtdata/txt3","/usr/local/txtdata/txt4","/usr/local/txtdata/txt5"};
string s;
string data;
int i = 0;
for(auto&p : path1){
ifstream ifile(p);
while(getline(ifile,s))
data =data + s;
cout<<"dayingdata: "<<data<<endl;
doc[i].set_data(data);
indexer.set_document(doc[i]);
indexer.index_text(data);
database.add_document(doc[i++]);
s.resize(0);
}
database.commit();
for(auto i=0; i!= 5 ; ++i){
cout<<"["<<doc[i].get_data()<<"]"<<"\n"<<endl;}
}catch(const Xapian::Error &error){
cout<<"exception:"<<error.get_msg()<<endl;}
}