fix url-email back compat (thanks ryan)

This commit is contained in:
Robert Muir 2014-11-01 22:15:01 -04:00
parent 91d6b096a9
commit e3bcd3cc07
2 changed files with 10 additions and 6 deletions

View file

@ -24,14 +24,13 @@ import org.apache.lucene.util.Version;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer;
import org.apache.lucene.analysis.standard.std40.UAX29URLEmailTokenizer40;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.assistedinject.Assisted;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.settings.IndexSettings;
import java.io.Reader;
/**
*
*/
@ -52,8 +51,9 @@ public class UAX29URLEmailTokenizerFactory extends AbstractTokenizerFactory {
tokenizer.setMaxTokenLength(maxTokenLength);
return tokenizer;
} else {
// nocommit: thats broken
throw new AssertionError();
UAX29URLEmailTokenizer40 tokenizer = new UAX29URLEmailTokenizer40();
tokenizer.setMaxTokenLength(maxTokenLength);
return tokenizer;
}
}
}

View file

@ -33,6 +33,7 @@ import org.apache.lucene.analysis.standard.ClassicTokenizer;
import org.apache.lucene.analysis.standard.StandardTokenizer;
import org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer;
import org.apache.lucene.analysis.standard.std40.StandardTokenizer40;
import org.apache.lucene.analysis.standard.std40.UAX29URLEmailTokenizer40;
import org.apache.lucene.analysis.th.ThaiTokenizer;
import org.elasticsearch.Version;
import org.elasticsearch.common.regex.Regex;
@ -67,8 +68,11 @@ public enum PreBuiltTokenizers {
UAX_URL_EMAIL(CachingStrategy.LUCENE) {
@Override
protected Tokenizer create(Version version) {
// nocommit - ths one needs to be exposed in lucene for bwc
return new UAX29URLEmailTokenizer();
if (version.luceneVersion.onOrAfter(org.apache.lucene.util.Version.LUCENE_4_7_0)) {
return new UAX29URLEmailTokenizer();
} else {
return new UAX29URLEmailTokenizer40();
}
}
},