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


DocFieldProcessorPerThread.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 DOCFIELDPROCESSORPERTHREAD_H
8 #define DOCFIELDPROCESSORPERTHREAD_H
9 
10 #include "DocConsumerPerThread.h"
11 #include "DocumentsWriter.h"
12 
13 namespace Lucene {
14 
20 public:
21  DocFieldProcessorPerThread(const DocumentsWriterThreadStatePtr& threadState, const DocFieldProcessorPtr& docFieldProcessor);
23 
25 
26 public:
27  double docBoost;
28  int32_t fieldGen;
32  Collection<DocFieldProcessorPerFieldPtr> _fields; // Holds all fields seen in current doc
33  int32_t fieldCount;
34 
35  Collection<DocFieldProcessorPerFieldPtr> fieldHash; // Hash table for all fields ever seen
36  int32_t hashMask;
37  int32_t totalFieldCount;
38 
41 
43  int32_t freeCount;
44  int32_t allocCount;
45 
46 public:
47  virtual void initialize();
48  virtual void abort();
50 
51  // If there are fields we've seen but did not see again in the last run, then free them up.
52  void trimFields(const SegmentWriteStatePtr& state);
53 
54  virtual DocWriterPtr processDocument();
55 
58 
59 protected:
60  void rehash();
61 };
62 
64 public:
67 
69 
70 public:
73 
74 protected:
76 
77 public:
78  virtual int64_t sizeInBytes();
79  virtual void finish();
80  virtual void abort();
81 };
82 
83 }
84 
85 #endif
boost::shared_ptr< DocFieldProcessorPerThread > DocFieldProcessorPerThreadPtr
Definition: LuceneTypes.h:117
double docBoost
Definition: DocFieldProcessorPerThread.h:24
StoredFieldsWriterPerThreadPtr fieldsWriter
Definition: DocFieldProcessorPerThread.h:39
Definition: DocFieldProcessorPerThread.h:63
Gathers all Fieldables for a document under the same name, updates FieldInfos, and calls per-field co...
Definition: DocFieldProcessorPerThread.h:19
boost::shared_ptr< DocFieldConsumerPerThread > DocFieldConsumerPerThreadPtr
Definition: LuceneTypes.h:110
DocFieldConsumerPerThreadPtr consumer
Definition: DocFieldProcessorPerThread.h:31
DocFieldProcessorPerThreadWeakPtr _docProcessor
Definition: DocFieldProcessorPerThread.h:75
int32_t totalFieldCount
Definition: DocFieldProcessorPerThread.h:37
boost::shared_ptr< DocFieldProcessorPerThreadPerDoc > DocFieldProcessorPerThreadPerDocPtr
Definition: LuceneTypes.h:118
boost::shared_ptr< DocumentsWriterThreadState > DocumentsWriterThreadStatePtr
Definition: LuceneTypes.h:124
virtual void initialize()
Called directly after instantiation to create objects that depend on this object being fully construc...
boost::weak_ptr< DocFieldProcessorPerThread > DocFieldProcessorPerThreadWeakPtr
Definition: LuceneTypes.h:117
Collection< DocFieldProcessorPerFieldPtr > fieldHash
Definition: DocFieldProcessorPerThread.h:35
boost::shared_ptr< DocFieldProcessor > DocFieldProcessorPtr
Definition: LuceneTypes.h:115
DocWriterPtr one
Definition: DocFieldProcessorPerThread.h:68
DocFieldProcessorPerThreadPerDoc(const DocFieldProcessorPerThreadPtr &docProcessor)
void freePerDoc(const DocFieldProcessorPerThreadPerDocPtr &perDoc)
int32_t fieldGen
Definition: DocFieldProcessorPerThread.h:28
Collection< DocFieldProcessorPerFieldPtr > _fields
Definition: DocFieldProcessorPerThread.h:32
virtual DocWriterPtr processDocument()
Process the document. If there is something for this document to be done in docID order...
DocStatePtr docState
Definition: DocFieldProcessorPerThread.h:40
void trimFields(const SegmentWriteStatePtr &state)
int32_t freeCount
Definition: DocFieldProcessorPerThread.h:43
Definition: DocConsumerPerThread.h:14
boost::weak_ptr< DocFieldProcessor > DocFieldProcessorWeakPtr
Definition: LuceneTypes.h:115
boost::shared_ptr< StoredFieldsWriterPerThread > StoredFieldsWriterPerThreadPtr
Definition: LuceneTypes.h:232
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Definition: AbstractAllTermDocs.h:12
DocFieldProcessorWeakPtr _docFieldProcessor
Definition: DocFieldProcessorPerThread.h:29
Collection< DocFieldProcessorPerThreadPerDocPtr > docFreeList
Definition: DocFieldProcessorPerThread.h:42
DocFieldProcessorPerThreadPerDocPtr getPerDoc()
Collection< DocFieldConsumerPerFieldPtr > fields()
int32_t fieldCount
Definition: DocFieldProcessorPerThread.h:33
Consumer returns this on each doc. This holds any state that must be flushed synchronized "in docID o...
Definition: DocumentsWriter.h:402
DocWriterPtr two
Definition: DocFieldProcessorPerThread.h:72
int32_t allocCount
Definition: DocFieldProcessorPerThread.h:44
FieldInfosPtr fieldInfos
Definition: DocFieldProcessorPerThread.h:30
DocFieldProcessorPerThread(const DocumentsWriterThreadStatePtr &threadState, const DocFieldProcessorPtr &docFieldProcessor)
boost::shared_ptr< SegmentWriteState > SegmentWriteStatePtr
Definition: LuceneTypes.h:222
boost::shared_ptr< DocState > DocStatePtr
Definition: LuceneTypes.h:122
boost::shared_ptr< DocWriter > DocWriterPtr
Definition: LuceneTypes.h:125
boost::shared_ptr< FieldInfos > FieldInfosPtr
Definition: LuceneTypes.h:127
int32_t hashMask
Definition: DocFieldProcessorPerThread.h:36

clucene.sourceforge.net