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
Lucene::SpanQueryPtr
boost::shared_ptr< SpanQuery > SpanQueryPtr
Definition: LuceneTypes.h:450
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene::SpanScorer
Public for extension only.
Definition: SpanScorer.h:15
Lucene::PayloadNearSpanScorer::setFreqCurrentDoc
virtual bool setFreqCurrentDoc()
Lucene::Collection< SpanQueryPtr >
SpanNearQuery.h
Lucene::PayloadNearSpanScorer::payloadsSeen
int32_t payloadsSeen
Definition: PayloadNearQuery.h:76
Lucene::PayloadNearSpanScorer::explain
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...
Lucene::LuceneObjectPtr
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
Lucene::PayloadNearSpanScorer::payloadScore
double payloadScore
Definition: PayloadNearQuery.h:75
Lucene::PayloadNearQuery::clone
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Returns a clone of this query.
SpanScorer.h
Lucene::PayloadNearSpanScorer
Definition: PayloadNearQuery.h:63
Lucene::PayloadNearQuery::PayloadNearQuery
PayloadNearQuery(Collection< SpanQueryPtr > clauses, int32_t slop, bool inOrder, const PayloadFunctionPtr &function)
Lucene::PayloadNearSpanWeight::~PayloadNearSpanWeight
virtual ~PayloadNearSpanWeight()
Lucene::PayloadNearQuery::PayloadNearQuery
PayloadNearQuery(Collection< SpanQueryPtr > clauses, int32_t slop, bool inOrder)
Lucene::PayloadNearSpanScorer::PayloadNearSpanScorer
PayloadNearSpanScorer(const SpansPtr &spans, const WeightPtr &weight, const SimilarityPtr &similarity, ByteArray norms)
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::PayloadNearSpanWeight
Definition: PayloadNearQuery.h:52
Lucene::PayloadNearSpanWeight::PayloadNearSpanWeight
PayloadNearSpanWeight(const SpanQueryPtr &query, const SearcherPtr &searcher)
Lucene::WeightPtr
boost::shared_ptr< Weight > WeightPtr
Definition: LuceneTypes.h:480
Lucene::PayloadNearSpanScorer::processPayloads
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.
Lucene::PayloadNearSpanScorer::spans
SpansPtr spans
Definition: PayloadNearQuery.h:68
Lucene::PayloadNearQuery::fieldName
String fieldName
Definition: PayloadNearQuery.h:32
Lucene::PayloadNearQuery::~PayloadNearQuery
virtual ~PayloadNearQuery()
Lucene::IndexReaderPtr
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
Lucene::SpanWeight
Public for use by other weight implementations.
Definition: SpanWeight.h:15
Lucene::PayloadNearSpanWeight::scorer
virtual ScorerPtr scorer(const IndexReaderPtr &reader, bool scoreDocsInOrder, bool topScorer)
Returns a Scorer which scores documents in/out-of order according to scoreDocsInOrder.
Lucene::PayloadNearQuery::createWeight
virtual WeightPtr createWeight(const SearcherPtr &searcher)
Constructs an appropriate Weight implementation for this query. Only implemented by primitive queries...
Lucene::ScorerPtr
boost::shared_ptr< Scorer > ScorerPtr
Definition: LuceneTypes.h:429
Lucene::PayloadNearSpanScorer::score
virtual double score()
Returns the score of the current document matching the query. Initially invalid, until {} or #advanc...
SpanWeight.h
Lucene::SpansPtr
boost::shared_ptr< Spans > SpansPtr
Definition: LuceneTypes.h:453
Lucene::SpanNearQuery
Matches spans which are near one another. One can specify slop, the maximum number of intervening unm...
Definition: SpanNearQuery.h:16
Lucene::PayloadNearQuery::equals
virtual bool equals(const LuceneObjectPtr &other)
Return whether two objects are equal.
Lucene::SimilarityPtr
boost::shared_ptr< Similarity > SimilarityPtr
Definition: LuceneTypes.h:435
Lucene::PayloadNearQuery::hashCode
virtual int32_t hashCode()
Return hash code for this object.
Lucene::PayloadNearQuery::toString
virtual String toString(const String &field)
Prints a query to a string, with field assumed to be the default field and omitted.
Lucene::PayloadFunctionPtr
boost::shared_ptr< PayloadFunction > PayloadFunctionPtr
Definition: LuceneTypes.h:402
Lucene::PayloadNearSpanScorer::similarity
SimilarityPtr similarity
Definition: PayloadNearQuery.h:72
Lucene::ExplanationPtr
boost::shared_ptr< Explanation > ExplanationPtr
Definition: LuceneTypes.h:333
Lucene::PayloadNearQuery
This class is very similar to SpanNearQuery except that it factors in the value of the payloads locat...
Definition: PayloadNearQuery.h:25
Lucene::PayloadNearSpanScorer::~PayloadNearSpanScorer
virtual ~PayloadNearSpanScorer()
Lucene::Query::toString
virtual String toString()
Prints a query to a string.
Lucene::PayloadNearSpanScorer::getPayloads
void getPayloads(Collection< SpansPtr > subSpans)
Get the payloads associated with all underlying subspans.
Lucene::SearcherPtr
boost::shared_ptr< Searcher > SearcherPtr
Definition: LuceneTypes.h:434

clucene.sourceforge.net