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

MultiPhraseQuery.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 MULTIPHRASEQUERY_H
8 #define MULTIPHRASEQUERY_H
9
10 #include "Query.h"
11
12 namespace Lucene {
13
18 class LPPAPI MultiPhraseQuery : public Query {
19 public:
20 MultiPhraseQuery();
21 virtual ~MultiPhraseQuery();
22
23 LUCENE_CLASS(MultiPhraseQuery);
24
25 protected:
26 String field;
27 Collection< Collection<TermPtr> > termArrays;
28 Collection<int32_t> positions;
29 int32_t slop;
30
31 public:
32 using Query::toString;
33
36 void setSlop(int32_t s);
37
40 int32_t getSlop();
41
44 void add(const TermPtr& term);
45
48 void add(Collection<TermPtr> terms);
49
52 void add(Collection<TermPtr> terms, int32_t position);
53
55 Collection< Collection<TermPtr> > getTermArrays();
56
58 Collection<int32_t> getPositions();
59
60 virtual void extractTerms(SetTerm terms);
61 virtual QueryPtr rewrite(const IndexReaderPtr& reader);
62 virtual WeightPtr createWeight(const SearcherPtr& searcher);
63
65 virtual String toString(const String& field);
66
67 virtual bool equals(const LuceneObjectPtr& other);
68 virtual int32_t hashCode();
69 virtual LuceneObjectPtr clone(const LuceneObjectPtr& other = LuceneObjectPtr());
70
71 protected:
72 int32_t termArraysHashCode();
73 bool termArraysEquals(Collection< Collection<TermPtr> > first, Collection< Collection<TermPtr> > second);
74
75 friend class MultiPhraseWeight;
76 };
77
78 }
79
80 #endif
Lucene::Query::toString
virtual String toString()
Prints a query to a string.
Lucene::MultiPhraseQuery::slop
int32_t slop
Definition: MultiPhraseQuery.h:29
Lucene::TermPtr
boost::shared_ptr< Term > TermPtr
Definition: LuceneTypes.h:233
Lucene::LuceneObjectPtr
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
Lucene::WeightPtr
boost::shared_ptr< Weight > WeightPtr
Definition: LuceneTypes.h:480
Lucene::MultiPhraseQuery
MultiPhraseQuery is a generalized version of PhraseQuery, with an added method add(Term[]). To use this class, to search for the phrase "Microsoft app*" first use add(Term) on the term "Microsoft", then find all terms that have "app" as prefix using IndexReader.terms(Term), and use MultiPhraseQuery.add(Term[] terms) to add them to the query.
Definition: MultiPhraseQuery.h:18
Lucene::SearcherPtr
boost::shared_ptr< Searcher > SearcherPtr
Definition: LuceneTypes.h:434
Query.h
Lucene::Query
The abstract base class for queries.
Definition: Query.h:31
Lucene::QueryPtr
boost::shared_ptr< Query > QueryPtr
Definition: LuceneTypes.h:420
Lucene::IndexReaderPtr
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157
LUCENE_CLASS
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Lucene
Definition: AbstractAllTermDocs.h:12
Lucene::Collection
Utility template class to handle collections that can be safely copied and shared.
Definition: Collection.h:17
Lucene::MultiPhraseQuery::termArrays
Collection< Collection< TermPtr > > termArrays
Definition: MultiPhraseQuery.h:27
Lucene::MultiPhraseQuery::positions
Collection< int32_t > positions
Definition: MultiPhraseQuery.h:28

clucene.sourceforge.net