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


PayloadNearQuery.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 PAYLOADNEARQUERY_H
8 #define PAYLOADNEARQUERY_H
9 
10 #include "SpanNearQuery.h"
11 #include "SpanWeight.h"
12 #include "SpanScorer.h"
13 
14 namespace Lucene {
15 
25 class LPPAPI PayloadNearQuery : public SpanNearQuery {
26 public:
27  PayloadNearQuery(Collection<SpanQueryPtr> clauses, int32_t slop, bool inOrder);
28  PayloadNearQuery(Collection<SpanQueryPtr> clauses, int32_t slop, bool inOrder, const PayloadFunctionPtr& function);
29 
30  virtual ~PayloadNearQuery();
31 
33 
34 protected:
35  String fieldName;
37 
38 public:
40 
41  virtual WeightPtr createWeight(const SearcherPtr& searcher);
42 
44  virtual String toString(const String& field);
45  virtual bool equals(const LuceneObjectPtr& other);
46  virtual int32_t hashCode();
47 
48  friend class PayloadNearSpanWeight;
49  friend class PayloadNearSpanScorer;
50 };
51 
52 class LPPAPI PayloadNearSpanWeight : public SpanWeight {
53 public:
54  PayloadNearSpanWeight(const SpanQueryPtr& query, const SearcherPtr& searcher);
56 
58 
59 public:
60  virtual ScorerPtr scorer(const IndexReaderPtr& reader, bool scoreDocsInOrder, bool topScorer);
61 };
62 
63 class LPPAPI PayloadNearSpanScorer : public SpanScorer {
64 public:
65  PayloadNearSpanScorer(const SpansPtr& spans, const WeightPtr& weight, const SimilarityPtr& similarity, ByteArray norms);
67 
69 
70 public:
73 
74 protected:
75  double payloadScore;
76  int32_t payloadsSeen;
77 
78 public:
81 
82  virtual double score();
83 
84 protected:
91  void processPayloads(Collection<ByteArray> payLoads, int32_t start, int32_t end);
92 
93  virtual bool setFreqCurrentDoc();
94  virtual ExplanationPtr explain(int32_t doc);
95 };
96 
97 }
98 
99 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
This class is very similar to SpanNearQuery except that it factors in the value of the payloads locat...
Definition: PayloadNearQuery.h:25
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Returns a clone of this query.
virtual String toString(const String &field)
Prints a query to a string, with field assumed to be the default field and omitted.
virtual int32_t hashCode()
Return hash code for this object.
virtual WeightPtr createWeight(const SearcherPtr &searcher)
Constructs an appropriate Weight implementation for this query. Only implemented by primitive queries...
virtual bool equals(const LuceneObjectPtr &other)
Return whether two objects are equal.
PayloadNearQuery(Collection< SpanQueryPtr > clauses, int32_t slop, bool inOrder)
String fieldName
Definition: PayloadNearQuery.h:32
PayloadNearQuery(Collection< SpanQueryPtr > clauses, int32_t slop, bool inOrder, const PayloadFunctionPtr &function)
Definition: PayloadNearQuery.h:63
virtual ExplanationPtr explain(int32_t doc)
This method is no longer an official member of Scorer, but it is needed by SpanWeight to build an exp...
SimilarityPtr similarity
Definition: PayloadNearQuery.h:72
SpansPtr spans
Definition: PayloadNearQuery.h:68
void processPayloads(Collection< ByteArray > payLoads, int32_t start, int32_t end)
By default, uses the PayloadFunction to score the payloads, but can be overridden to do other things.
void getPayloads(Collection< SpansPtr > subSpans)
Get the payloads associated with all underlying subspans.
double payloadScore
Definition: PayloadNearQuery.h:75
int32_t payloadsSeen
Definition: PayloadNearQuery.h:76
PayloadNearSpanScorer(const SpansPtr &spans, const WeightPtr &weight, const SimilarityPtr &similarity, ByteArray norms)
virtual double score()
Returns the score of the current document matching the query. Initially invalid, until {} or #advanc...
virtual bool setFreqCurrentDoc()
Definition: PayloadNearQuery.h:52
PayloadNearSpanWeight(const SpanQueryPtr &query, const SearcherPtr &searcher)
virtual ScorerPtr scorer(const IndexReaderPtr &reader, bool scoreDocsInOrder, bool topScorer)
Returns a Scorer which scores documents in/out-of order according to scoreDocsInOrder.
virtual String toString()
Prints a query to a string.
Matches spans which are near one another. One can specify slop, the maximum number of intervening unm...
Definition: SpanNearQuery.h:16
Public for extension only.
Definition: SpanScorer.h:15
Public for use by other weight implementations.
Definition: SpanWeight.h:15
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< PayloadFunction > PayloadFunctionPtr
Definition: LuceneTypes.h:402
boost::shared_ptr< SpanQuery > SpanQueryPtr
Definition: LuceneTypes.h:450
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
boost::shared_ptr< Searcher > SearcherPtr
Definition: LuceneTypes.h:434
boost::shared_ptr< Similarity > SimilarityPtr
Definition: LuceneTypes.h:435
boost::shared_ptr< Explanation > ExplanationPtr
Definition: LuceneTypes.h:333
boost::shared_ptr< Spans > SpansPtr
Definition: LuceneTypes.h:453
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
boost::shared_ptr< Scorer > ScorerPtr
Definition: LuceneTypes.h:429
boost::shared_ptr< Weight > WeightPtr
Definition: LuceneTypes.h:480

clucene.sourceforge.net