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


FuzzyTermEnum.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 FUZZYTERMENUM_H
8 #define FUZZYTERMENUM_H
9 
10 #include "FilteredTermEnum.h"
11 
12 namespace Lucene {
13 
18 class LPPAPI FuzzyTermEnum : public FilteredTermEnum {
19 public:
29  FuzzyTermEnum(const IndexReaderPtr& reader, const TermPtr& term, double minSimilarity, int32_t prefixLength);
30  FuzzyTermEnum(const IndexReaderPtr& reader, const TermPtr& term, double minSimilarity);
31  FuzzyTermEnum(const IndexReaderPtr& reader, const TermPtr& term);
32 
33  virtual ~FuzzyTermEnum();
34 
36 
37 protected:
41 
42  double _similarity;
43  bool _endEnum;
44 
46  String field;
47  String text;
48  String prefix;
49 
51  double scale_factor;
52 
53 public:
54  virtual double difference();
55  virtual bool endEnum();
56  virtual void close();
57 
58 protected:
59  void ConstructTermEnum(const IndexReaderPtr& reader, const TermPtr& term, double minSimilarity, int32_t prefixLength);
60 
63  virtual bool termCompare(const TermPtr& term);
64 
105  double similarity(const String& target);
106 
111  int32_t calculateMaxDistance(int32_t m);
112 };
113 
114 }
115 
116 #endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Abstract class for enumerating a subset of all terms.
Definition: FilteredTermEnum.h:18
Subclass of FilteredTermEnum for enumerating all terms that are similar to the specified filter term.
Definition: FuzzyTermEnum.h:18
Collection< int32_t > d
Definition: FuzzyTermEnum.h:40
double minimumSimilarity
Definition: FuzzyTermEnum.h:50
int32_t calculateMaxDistance(int32_t m)
The max Distance is the maximum Levenshtein distance for the text compared to some other value that r...
virtual bool endEnum()
Indicates the end of the enumeration has been reached.
String text
Definition: FuzzyTermEnum.h:47
double scale_factor
Definition: FuzzyTermEnum.h:51
double _similarity
Definition: FuzzyTermEnum.h:42
virtual bool termCompare(const TermPtr &term)
The termCompare method in FuzzyTermEnum uses Levenshtein distance to calculate the distance between t...
Collection< int32_t > p
Allows us save time required to create a new array every time similarity is called.
Definition: FuzzyTermEnum.h:35
void ConstructTermEnum(const IndexReaderPtr &reader, const TermPtr &term, double minSimilarity, int32_t prefixLength)
TermPtr searchTerm
Definition: FuzzyTermEnum.h:45
FuzzyTermEnum(const IndexReaderPtr &reader, const TermPtr &term)
bool _endEnum
Definition: FuzzyTermEnum.h:43
String field
Definition: FuzzyTermEnum.h:46
FuzzyTermEnum(const IndexReaderPtr &reader, const TermPtr &term, double minSimilarity, int32_t prefixLength)
Constructor for enumeration of all terms from specified reader which share a prefix of length prefixL...
FuzzyTermEnum(const IndexReaderPtr &reader, const TermPtr &term, double minSimilarity)
virtual void close()
Closes the enumeration to further activity, freeing resources.
double similarity(const String &target)
Compute Levenshtein distance.
String prefix
Definition: FuzzyTermEnum.h:48
virtual double difference()
Equality measure on the term.
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< Term > TermPtr
Definition: LuceneTypes.h:233
boost::shared_ptr< IndexReader > IndexReaderPtr
Definition: LuceneTypes.h:157

clucene.sourceforge.net