现在的位置: 首页 > 综合 > 正文

second_indexr

2014年07月12日 ⁄ 综合 ⁄ 共 1113字 ⁄ 字号 评论关闭


#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;}

   }  

 

 

 

抱歉!评论已关闭.