searchengine/cpix/cpix/inc/private/analyzer.h
changeset 1 6f2c1c46032b
parent 0 671dee74050a
child 8 6547bf8ca13a
equal deleted inserted replaced
0:671dee74050a 1:6f2c1c46032b
    54 }
    54 }
    55 
    55 
    56 // Class definitions
    56 // Class definitions
    57 namespace Cpix
    57 namespace Cpix
    58 {
    58 {
       
    59 
       
    60 	/**
       
    61 	 * This is a special filter that is used to generate prefixes
       
    62 	 * of the searched words.
       
    63 	 * 
       
    64 	 * For example token "chapter" will be split into tokens "ch" and "c"
       
    65 	 * if maxPrefixLength is set as 2. 
       
    66 	 */
       
    67 	class PrefixGenerator : public lucene::analysis::TokenFilter {
       
    68 	
       
    69 	public: 
       
    70 	
       
    71 		PrefixGenerator(lucene::analysis::TokenStream* in, 
       
    72 						bool deleteTS, 
       
    73 						size_t maxPrefixLength);
       
    74 
       
    75 		virtual ~PrefixGenerator();
       
    76 		
       
    77 		/**
       
    78 		 * Returns
       
    79 		 */
       
    80 		virtual bool next(lucene::analysis::Token* token);
       
    81 		
       
    82 	private: 
       
    83 		
       
    84 		lucene::analysis::Token token_; 
       
    85 		
       
    86 		size_t prefixLength_;
       
    87 	
       
    88 		size_t maxPrefixLength_; 
       
    89 	
       
    90 	};
       
    91 
    59     /**
    92     /**
    60      * Aggregates token streams from all fields marked from aggregation. 
    93      * Aggregates token streams from all fields marked from aggregation. 
    61      * Used to generate the contents of the _aggregate field. 
    94      * Used to generate the contents of the _aggregate field. 
    62      */
    95      */
    63     class AggregateFieldTokenStream : public lucene::analysis::TokenStream {
    96     class AggregateFieldTokenStream : public lucene::analysis::TokenStream {