SnowballAnalyzer::SnowballAnalyzer(const char* language) {
this->language = strdup(language);
stopSet = NULL;
+ prevstream = NULL;
}
SnowballAnalyzer::~SnowballAnalyzer(){
+ if (prevstream) _CLDELETE(prevstream);
_CLDELETE_CARRAY(language);
if ( stopSet != NULL )
_CLDELETE(stopSet);
return result;
}
+ TokenStream* SnowballAnalyzer::reusableTokenStream(const TCHAR* fieldName, CL_NS(util)::Reader* reader) {
+ if (prevstream) _CLDELETE(prevstream);
+ prevstream = this->tokenStream(fieldName, reader);
+ return prevstream;
+ }
class CLUCENE_CONTRIBS_EXPORT SnowballAnalyzer: public Analyzer {
char* language;
CLTCSetList* stopSet;
+ TokenStream *prevstream;
public:
/** Builds the named analyzer with no stop words. */
StandardFilter}, a {@link LowerCaseFilter} and a {@link StopFilter}. */
TokenStream* tokenStream(const TCHAR* fieldName, CL_NS(util)::Reader* reader);
TokenStream* tokenStream(const TCHAR* fieldName, CL_NS(util)::Reader* reader, bool deleteReader);
+ TokenStream* reusableTokenStream(const TCHAR* fieldName, CL_NS(util)::Reader* reader);
};
CL_NS_END2