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


 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ParallelReader.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 PARALLELREADER_H
8 #define PARALLELREADER_H
9 
10 #include "IndexReader.h"
11 
12 namespace Lucene {
13 
26 class LPPAPI ParallelReader : public IndexReader {
27 public:
31  ParallelReader(bool closeSubReaders = true);
32 
33  virtual ~ParallelReader();
34 
36 
37 protected:
39  Collection<uint8_t> decrefOnClose; // remember which subreaders to decRef on close
41  MapStringIndexReader fieldToReader;
42  MapIndexReaderSetString readerToFields;
44 
45  int32_t _maxDoc;
46  int32_t _numDocs;
48 
49 public:
51  void add(const IndexReaderPtr& reader);
52 
55  void add(const IndexReaderPtr& reader, bool ignoreStoredFields);
56 
57  virtual LuceneObjectPtr clone(const LuceneObjectPtr& other = LuceneObjectPtr());
58 
70  virtual IndexReaderPtr reopen();
71 
73  virtual int32_t numDocs();
74 
77  virtual int32_t maxDoc();
78 
80  virtual bool hasDeletions();
81 
83  virtual bool isDeleted(int32_t n);
84 
86  virtual DocumentPtr document(int32_t n, const FieldSelectorPtr& fieldSelector);
87 
89  virtual Collection<TermFreqVectorPtr> getTermFreqVectors(int32_t docNumber);
90 
92  virtual TermFreqVectorPtr getTermFreqVector(int32_t docNumber, const String& field);
93 
96  virtual void getTermFreqVector(int32_t docNumber, const String& field, const TermVectorMapperPtr& mapper);
97 
99  virtual void getTermFreqVector(int32_t docNumber, const TermVectorMapperPtr& mapper);
100 
102  virtual bool hasNorms(const String& field);
103 
105  virtual ByteArray norms(const String& field);
106 
108  virtual void norms(const String& field, ByteArray norms, int32_t offset);
109 
114  virtual TermEnumPtr terms();
115 
120  virtual TermEnumPtr terms(const TermPtr& t);
121 
123  virtual int32_t docFreq(const TermPtr& t);
124 
130  virtual TermDocsPtr termDocs(const TermPtr& term);
131 
133  virtual TermDocsPtr termDocs();
134 
136  virtual TermPositionsPtr termPositions(const TermPtr& term);
137 
139  virtual TermPositionsPtr termPositions();
140 
142  virtual bool isCurrent();
143 
145  virtual bool isOptimized();
146 
148  virtual int64_t getVersion();
149 
150  Collection<IndexReaderPtr> getSubReaders();
151 
154  virtual HashSet<String> getFieldNames(FieldOption fieldOption);
155 
156 protected:
157  IndexReaderPtr doReopen(bool doClone);
158 
160  virtual void doDelete(int32_t docNum);
161 
163  virtual void doUndeleteAll();
164 
166  virtual void doSetNorm(int32_t doc, const String& field, uint8_t value);
167 
169  virtual void doCommit(MapStringString commitUserData);
170 
172  virtual void doClose();
173 
174  friend class ParallelTermEnum;
175  friend class ParallelTermDocs;
176  friend class ParallelTermPositions;
177 };
178 
179 }
180 
181 #endif
boost::shared_ptr< Term > TermPtr
Definition: LuceneTypes.h:233
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
boost::shared_ptr< TermDocs > TermDocsPtr
Definition: LuceneTypes.h:236
boost::shared_ptr< TermEnum > TermEnumPtr
Definition: LuceneTypes.h:235
MapIndexReaderSetString readerToFields
Definition: ParallelReader.h:42
boost::shared_ptr< FieldSelector > FieldSelectorPtr
Definition: LuceneTypes.h:77
Collection< uint8_t > decrefOnClose
Definition: ParallelReader.h:39
bool _hasDeletions
Definition: ParallelReader.h:47
int32_t _maxDoc
Definition: ParallelReader.h:45
boost::shared_ptr< Document > DocumentPtr
Definition: LuceneTypes.h:74
FieldOption
Constants describing field properties, for example used for IndexReader#getFieldNames(FieldOption).
Definition: IndexReader.h:48
Collection< IndexReaderPtr > storedFieldReaders
Definition: ParallelReader.h:43
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
boost::shared_ptr< TermVectorMapper > TermVectorMapperPtr
Definition: LuceneTypes.h:254
boost::shared_ptr< TermPositions > TermPositionsPtr
Definition: LuceneTypes.h:243
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
bool incRefReaders
Definition: ParallelReader.h:40
MapStringIndexReader fieldToReader
Definition: ParallelReader.h:41
int32_t _numDocs
Definition: ParallelReader.h:46
An IndexReader which reads multiple, parallel indexes. Each index added must have the same number of ...
Definition: ParallelReader.h:26
IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...
Definition: IndexReader.h:39
boost::shared_ptr< TermFreqVector > TermFreqVectorPtr
Definition: LuceneTypes.h:237

clucene.sourceforge.net