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


SortField.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 SORTFIELD_H
8 #define SORTFIELD_H
9 
10 #include "LuceneObject.h"
11 
12 namespace Lucene {
13 
16 class LPPAPI SortField : public LuceneObject {
17 public:
22  SortField(const String& field, int32_t type, bool reverse = false);
23 
30  SortField(const String& field, const ParserPtr& parser, bool reverse = false);
31 
36  SortField(const String& field, const std::locale& locale, bool reverse = false);
37 
42  SortField(const String& field, const FieldComparatorSourcePtr& comparator, bool reverse = false);
43 
44  virtual ~SortField();
45 
47 
48 public:
50  static const int32_t SCORE;
51 
53  static const int32_t DOC;
54 
56  static const int32_t STRING;
57 
59  static const int32_t INT;
60 
62  static const int32_t FLOAT;
63 
65  static const int32_t LONG;
66 
68  static const int32_t DOUBLE;
69 
71  static const int32_t SHORT;
72 
75  static const int32_t CUSTOM;
76 
78  static const int32_t BYTE;
79 
82  static const int32_t STRING_VAL;
83 
84 INTERNAL:
85  bool reverse; // defaults to natural order
86 
87  String field;
88  int32_t type; // defaults to determining type dynamically
89  localePtr locale; // defaults to "natural order" (no Locale)
91 
92 private:
94  FieldComparatorSourcePtr comparatorSource;
95 
96 public:
98  static SortFieldPtr FIELD_SCORE();
99 
101  static SortFieldPtr FIELD_DOC();
102 
105  String getField();
106 
109  int32_t getType();
110 
112  localePtr getLocale();
113 
117  ParserPtr getParser();
118 
121  bool getReverse();
122 
124  FieldComparatorSourcePtr getComparatorSource();
125 
126  virtual String toString();
127 
130  virtual bool equals(const LuceneObjectPtr& other);
131 
132  virtual int32_t hashCode();
133 
139  FieldComparatorPtr getComparator(int32_t numHits, int32_t sortPos);
140 
141 protected:
143  void initFieldType(const String& field, int32_t type);
144 };
145 
146 }
147 
148 #endif
Lucene::SortField::SHORT
static const int32_t SHORT
Sort using term values as Shorts. Sort values are Short and lower values are at the front.
Definition: SortField.h:71
Lucene::SortField::BYTE
static const int32_t BYTE
Sort using term values as Bytes. Sort values are Byte and lower values are at the front.
Definition: SortField.h:78
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene::LuceneObjectPtr
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
Lucene::SortField::parser
ParserPtr parser
Definition: SortField.h:90
Lucene::SortFieldPtr
boost::shared_ptr< SortField > SortFieldPtr
Definition: LuceneTypes.h:443
Lucene::SortField::LONG
static const int32_t LONG
Sort using term values as Longs. Sort values are Long and lower values are at the front.
Definition: SortField.h:65
Lucene::SortField::type
int32_t type
Definition: SortField.h:88
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::LuceneObject
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Lucene::SortField::INT
static const int32_t INT
Sort using term values as Integers. Sort values are Integer and lower values are at the front.
Definition: SortField.h:59
Lucene::SortField::DOC
static const int32_t DOC
Sort by document number (index order). Sort values are Integer and lower values are at the front.
Definition: SortField.h:53
Lucene::SortField::STRING_VAL
static const int32_t STRING_VAL
Sort using term values as Strings, but comparing by value (using String::compare) for all comparisons...
Definition: SortField.h:82
Lucene::SortField::STRING
static const int32_t STRING
Sort using term values as Strings. Sort values are String and lower values are at the front.
Definition: SortField.h:56
Lucene::SortField
Stores information about how to sort documents by terms in an individual field. Fields must be indexe...
Definition: SortField.h:16
Lucene::SortField::DOUBLE
static const int32_t DOUBLE
Sort using term values as Doubles. Sort values are Double and lower values are at the front.
Definition: SortField.h:68
Lucene::FieldComparatorSourcePtr
boost::shared_ptr< FieldComparatorSource > FieldComparatorSourcePtr
Definition: LuceneTypes.h:349
Lucene::ParserPtr
boost::shared_ptr< Parser > ParserPtr
Definition: LuceneTypes.h:401
Lucene::SortField::FLOAT
static const int32_t FLOAT
Sort using term values as Floats. Sort values are Float and lower values are at the front.
Definition: SortField.h:62
Lucene::SortField::field
String field
Definition: SortField.h:87
Lucene::SortField::locale
localePtr locale
Definition: SortField.h:89
Lucene::SortField::CUSTOM
static const int32_t CUSTOM
Sort using a custom Comparator. Sort values are any ComparableValue and sorting is done according to ...
Definition: SortField.h:75
Lucene::FieldComparatorPtr
boost::shared_ptr< FieldComparator > FieldComparatorPtr
Definition: LuceneTypes.h:348
LuceneObject.h

clucene.sourceforge.net