lux/index/search_index.h

00001 #ifndef LUX_INDEX_SEARCHINDEX_H
00002 #define LUX_INDEX_SEARCHINDEX_H
00003 
00004 #include "lux/lux.h"
00005 #include "index_result.h"
00006 
00007 namespace Lux {
00008 
00009   class Document;
00010   class Query;
00011   class TermQuery;
00012   class PhraseQuery;
00013   class BooleanQuery;
00014 
00015   class SearchIndex {
00016 
00017   public:
00018     virtual ~SearchIndex() {};
00019     virtual bool open(std::string storage_dir, db_flags_t open_params) = 0;
00020     virtual bool close(void) = 0;
00021     virtual bool add(const Document *doc) = 0;
00022     virtual bool add(const Document &doc) = 0;
00023     virtual void flush(void) = 0;
00024     virtual uint32_t get_buffer_size(void) = 0;
00025     virtual void print_buffer(void) {};
00026     virtual void set_sys_cond(sys_cond_t sys_cond) = 0;
00027     virtual IndexResultSet search(Query *query) = 0;
00028     virtual IndexResultSet search_term(TermQuery *qterm) = 0;
00029     virtual IndexResultSet search_phrase(PhraseQuery *qphrase) = 0;
00030     virtual IndexResultSet search_boolean(BooleanQuery *bquery) = 0;
00031   };
00032 }
00033 
00034 #endif

Generated on Fri Feb 5 15:50:30 2010 for Lux by  doxygen 1.4.7