CLucene - a full-featured, c++ search engine
API Documentation
00001 /*------------------------------------------------------------------------------ 00002 * Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team 00003 * 00004 * Distributable under the terms of either the Apache License (Version 2.0) or 00005 * the GNU Lesser General Public License, as specified in the COPYING file. 00006 ------------------------------------------------------------------------------*/ 00007 #ifndef _lucene_search_MultiTermQuery_ 00008 #define _lucene_search_MultiTermQuery_ 00009 00010 #if defined(_LUCENE_PRAGMA_ONCE) 00011 # pragma once 00012 #endif 00013 00014 #include "CLucene/util/StringBuffer.h" 00015 #include "CLucene/index/IndexReader.h" 00016 #include "CLucene/index/Term.h" 00017 #include "CLucene/index/Terms.h" 00018 #include "FilteredTermEnum.h" 00019 #include "SearchHeader.h" 00020 #include "BooleanQuery.h" 00021 #include "TermQuery.h" 00022 00023 CL_NS_DEF(search) 00037 class MultiTermQuery: public Query { 00038 private: 00039 CL_NS(index)::Term* term; 00040 protected: 00041 MultiTermQuery(const MultiTermQuery& clone); 00042 00044 virtual FilteredTermEnum* getEnum(CL_NS(index)::IndexReader* reader) = 0; 00045 public: 00047 MultiTermQuery(CL_NS(index)::Term* t); 00048 00049 virtual ~MultiTermQuery(); 00050 00052 CL_NS(index)::Term* getTerm(bool pointer=true) const; 00053 00054 Query* combine(Query** queries); 00055 00057 TCHAR* toString(const TCHAR* field) const; 00058 00059 Query* rewrite(CL_NS(index)::IndexReader* reader); 00060 }; 00061 CL_NS_END 00062 #endif