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


Loading...
Searching...
No Matches
NumericRangeQuery.h
Go to the documentation of this file.
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.
6
7#ifndef NUMERICRANGEQUERY_H
8#define NUMERICRANGEQUERY_H
9
10#include "MultiTermQuery.h"
11#include "FilteredTermEnum.h"
12#include "NumericUtils.h"
13
14namespace Lucene {
15
108class LPPAPI NumericRangeQuery : public MultiTermQuery {
109public:
110 NumericRangeQuery(const String& field, int32_t precisionStep, int32_t valSize, NumericValue min, NumericValue max, bool minInclusive, bool maxInclusive);
112
114
115INTERNAL:
116 String field;
118 int32_t valSize;
119 NumericValue min;
120 NumericValue max;
123
124public:
125 using MultiTermQuery::toString;
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
166
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
181protected:
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 FilteredTermEnum ...
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...
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