Lucene++ - a full-featured, c++ search engine
API Documentation


NumericRangeQuery.h
Go to the documentation of this file.
1 // 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.
6 
7 #ifndef NUMERICRANGEQUERY_H
8 #define NUMERICRANGEQUERY_H
9 
10 #include "MultiTermQuery.h"
11 #include "FilteredTermEnum.h"
12 #include "NumericUtils.h"
13 
14 namespace Lucene {
15 
108 class LPPAPI NumericRangeQuery : public MultiTermQuery {
109 public:
110  NumericRangeQuery(const String& field, int32_t precisionStep, int32_t valSize, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive);
112 
114 
115 INTERNAL:
116  String field;
117  int32_t precisionStep;
118  int32_t valSize;
119  NumericValue min;
120  NumericValue max;
123 
124 public:
126 
128  static NumericRangeQueryPtr newLongRange(const String& field, int32_t precisionStep, int64_t min, int64_t max, bool minInclusive, bool maxInclusive);
129 
132  static NumericRangeQueryPtr newLongRange(const String& field, int64_t min, int64_t max, bool minInclusive, bool maxInclusive);
133 
135  static NumericRangeQueryPtr newIntRange(const String& field, int32_t precisionStep, int32_t min, int32_t max, bool minInclusive, bool maxInclusive);
136 
139  static NumericRangeQueryPtr newIntRange(const String& field, int32_t min, int32_t max, bool minInclusive, bool maxInclusive);
140 
142  static NumericRangeQueryPtr newDoubleRange(const String& field, int32_t precisionStep, double min, double max, bool minInclusive, bool maxInclusive);
143 
146  static NumericRangeQueryPtr newDoubleRange(const String& field, double min, double max, bool minInclusive, bool maxInclusive);
147 
152  static NumericRangeQueryPtr newNumericRange(const String& field, int32_t precisionStep, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive);
153 
159  static NumericRangeQueryPtr newNumericRange(const String& field, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive);
160 
162  String getField();
163 
165  bool includesMin();
166 
168  bool includesMax();
169 
171  NumericValue getMin();
172 
174  NumericValue getMax();
175 
177  virtual String toString(const String& field);
178  virtual bool equals(const LuceneObjectPtr& other);
179  virtual int32_t hashCode();
180 
181 protected:
183 
184  friend class NumericRangeTermEnum;
185 };
186 
187 }
188 
189 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
An abstract Query that matches documents containing a subset of terms provided by a {} enumeration.
Definition: MultiTermQuery.h:31
A Query that matches numeric values within a specified range. To use this, you must first index the n...
Definition: NumericRangeQuery.h:108
static NumericRangeQueryPtr newIntRange(const String &field, int32_t precisionStep, int32_t min, int32_t max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeFilter, that filters a int range using the given precisionStep.
static NumericRangeQueryPtr newLongRange(const String &field, int64_t min, int64_t max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeFilter, that filters a long range using the default precisionStep ...
static NumericRangeQueryPtr newNumericRange(const String &field, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeQuery, that queries a int, long or double range using the default ...
virtual bool equals(const LuceneObjectPtr &other)
Return whether two objects are equal.
NumericValue getMax()
Returns the upper value of this range query.
int32_t valSize
Definition: NumericRangeQuery.h:118
NumericRangeQuery(const String &field, int32_t precisionStep, int32_t valSize, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive)
virtual int32_t hashCode()
Return hash code for this object.
static NumericRangeQueryPtr newNumericRange(const String &field, int32_t precisionStep, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeQuery, that queries a int, long or double range using the given pr...
virtual FilteredTermEnumPtr getEnum(const IndexReaderPtr &reader)
Construct the enumeration to be used, expanding the pattern term.
bool includesMin()
Returns true if the lower endpoint is inclusive.
NumericValue getMin()
Returns the lower value of this range query.
bool minInclusive
Definition: NumericRangeQuery.h:121
static NumericRangeQueryPtr newDoubleRange(const String &field, double min, double max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeFilter, that filters a double range using the default precisionSte...
String getField()
Returns the field name for this query.
virtual String toString(const String &field)
Prints a query to a string, with field assumed to be the default field and omitted.
static NumericRangeQueryPtr newLongRange(const String &field, int32_t precisionStep, int64_t min, int64_t max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeFilter, that filters a long range using the given precisionStep.
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Returns a clone of this query.
NumericValue min
Definition: NumericRangeQuery.h:119
static NumericRangeQueryPtr newDoubleRange(const String &field, int32_t precisionStep, double min, double max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeFilter, that filters a double range using the given precisionStep.
int32_t precisionStep
Definition: NumericRangeQuery.h:117
bool includesMax()
Returns true if the upper endpoint is inclusive.
NumericValue max
Definition: NumericRangeQuery.h:120
bool maxInclusive
Definition: NumericRangeQuery.h:122
static NumericRangeQueryPtr newIntRange(const String &field, int32_t min, int32_t max, bool minInclusive, bool maxInclusive)
Factory that creates a NumericRangeFilter, that filters a int range using the default precisionStep N...
virtual String toString()
Prints a query to a string.
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
boost::shared_ptr< NumericRangeQuery > NumericRangeQueryPtr
Definition: LuceneTypes.h:394
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
boost::shared_ptr< FilteredTermEnum > FilteredTermEnumPtr
Definition: LuceneTypes.h:365

clucene.sourceforge.net