1 ///////////////////////////////////////////////////////////////////////////// 2 // Copyright (c) 2009-2014 Alan Wright. All rights reserved. 3 // Distributable under the terms of either the Apache License (Version 2.0) 4 // or the GNU Lesser General Public License. 5 ///////////////////////////////////////////////////////////////////////////// 6 7 #ifndef BOOLEANCLAUSE_H 8 #define BOOLEANCLAUSE_H 9 10 #include "LuceneObject.h" 11 12 namespace Lucene { 13 14 /// A clause in a BooleanQuery. 15 class LPPAPI BooleanClause : public LuceneObject { 16 public: 17 /// Specifies how clauses are to occur in matching documents. 18 enum Occur { 19 /// Use this operator for clauses that must appear in the matching documents. 20 MUST, 21 22 /// Use this operator for clauses that should appear in the matching documents. For a BooleanQuery 23 /// with no MUST clauses one or more SHOULD clauses must match a document for the BooleanQuery to match. 24 /// @see BooleanQuery#setMinimumNumberShouldMatch 25 SHOULD, 26 27 /// Use this operator for clauses that must not appear in the matching documents. Note that it is not 28 /// possible to search for queries that only consist of a MUST_NOT clause. 29 MUST_NOT 30 }; 31 32 public: 33 BooleanClause(const QueryPtr& query, Occur occur); 34 virtual ~BooleanClause(); 35 36 LUCENE_CLASS(BooleanClause); 37 38 protected: 39 /// The query whose matching documents are combined by the boolean query. 40 QueryPtr query; 41 Occur occur; 42 43 public: 44 Occur getOccur(); 45 void setOccur(Occur occur); 46 47 QueryPtr getQuery(); 48 void setQuery(const QueryPtr& query); 49 50 bool isProhibited(); 51 bool isRequired(); 52 53 virtual bool equals(const LuceneObjectPtr& other); 54 virtual int32_t hashCode(); 55 virtual String toString(); 56 }; 57 58 } 59 60 #endif 61