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


NearSpansUnordered.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 NEARSPANSUNORDERED_H
8 #define NEARSPANSUNORDERED_H
9 
10 #include "Spans.h"
11 
12 namespace Lucene {
13 
17 class LPPAPI NearSpansUnordered : public Spans {
18 public:
19  NearSpansUnordered(const SpanNearQueryPtr& query, const IndexReaderPtr& reader);
21 
23 
24 protected:
27 
28  Collection<SpansCellPtr> ordered; // spans in query order
30  int32_t slop; // from query
31 
32  SpansCellPtr first; // linked list of spans
33  SpansCellPtr last; // sorted by doc only
34 
35  int32_t totalLength; // sum of current lengths
36 
37  CellQueuePtr queue; // sorted queue of spans
38  SpansCellPtr max; // max element in queue
39 
40  bool more; // true if not done
41  bool firstTime; // true before first next()
42 
43 public:
44  virtual void initialize();
45 
47 
48  virtual bool next();
49  virtual bool skipTo(int32_t target);
50  virtual int32_t doc();
51  virtual int32_t start();
52  virtual int32_t end();
54  virtual bool isPayloadAvailable();
55  virtual String toString();
56 
57 protected:
59  void initList(bool next);
60  void addToList(const SpansCellPtr& cell);
61  void firstToLast();
62  void queueToList();
63  void listToQueue();
64  bool atMatch();
65 
66  friend class SpansCell;
67 };
68 
69 }
70 
71 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Similar to NearSpansOrdered, but for the unordered case.
Definition: NearSpansUnordered.h:17
Collection< SpansCellPtr > ordered
Definition: NearSpansUnordered.h:28
SpansCellPtr last
Definition: NearSpansUnordered.h:33
virtual int32_t doc()
Returns the document number of the current match. Initially invalid.
Collection< SpansPtr > getSubSpans()
CellQueuePtr queue
Definition: NearSpansUnordered.h:37
int32_t slop
Definition: NearSpansUnordered.h:30
virtual String toString()
Returns a string representation of the object.
IndexReaderPtr reader
Definition: NearSpansUnordered.h:26
SpansCellPtr max
Definition: NearSpansUnordered.h:38
void addToList(const SpansCellPtr &cell)
virtual void initialize()
Called directly after instantiation to create objects that depend on this object being fully construc...
virtual bool next()
Move to the next match, returning true if any such exists.
SpansCellPtr first
Definition: NearSpansUnordered.h:32
virtual int32_t end()
Returns the end position of the current match. Initially invalid.
int32_t totalLength
Definition: NearSpansUnordered.h:35
bool more
Definition: NearSpansUnordered.h:40
NearSpansUnordered(const SpanNearQueryPtr &query, const IndexReaderPtr &reader)
virtual bool skipTo(int32_t target)
Skips to the first match beyond the current, whose document number is greater than or equal to target...
bool firstTime
Definition: NearSpansUnordered.h:41
virtual int32_t start()
Returns the start position of the current match. Initially invalid.
Collection< SpansPtr > subSpans
Definition: NearSpansUnordered.h:29
virtual bool isPayloadAvailable()
Checks if a payload can be loaded at this position.
SpanNearQueryPtr query
Definition: NearSpansUnordered.h:22
virtual Collection< ByteArray > getPayload()
Returns the payload data for the current span. This is invalid until next() is called for the first t...
void initList(bool next)
An enumeration of span matches. Used to implement span searching. Each span represents a range of ter...
Definition: Spans.h:17
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< SpansCell > SpansCellPtr
Definition: LuceneTypes.h:454
boost::shared_ptr< CellQueue > CellQueuePtr
Definition: LuceneTypes.h:294
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
boost::shared_ptr< SpanNearQuery > SpanNearQueryPtr
Definition: LuceneTypes.h:447

clucene.sourceforge.net