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.Tokenizer;
import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer; 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.Inject;
import org.elasticsearch.common.inject.assistedinject.Assisted; import org.elasticsearch.common.inject.assistedinject.Assisted;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.Index; import org.elasticsearch.index.Index;
import org.elasticsearch.index.settings.IndexSettings; import org.elasticsearch.index.settings.IndexSettings;
import java.io.Reader;
/** /**
* *
*/ */
@ -52,8 +51,9 @@ public class UAX29URLEmailTokenizerFactory extends AbstractTokenizerFactory {
tokenizer.setMaxTokenLength(maxTokenLength); tokenizer.setMaxTokenLength(maxTokenLength);
return tokenizer; return tokenizer;
} else { } else {
// nocommit: thats broken UAX29URLEmailTokenizer40 tokenizer = new UAX29URLEmailTokenizer40();
throw new AssertionError(); 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.StandardTokenizer;
import org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer; import org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer;
import org.apache.lucene.analysis.standard.std40.StandardTokenizer40; 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.apache.lucene.analysis.th.ThaiTokenizer;
import org.elasticsearch.Version; import org.elasticsearch.Version;
import org.elasticsearch.common.regex.Regex; import org.elasticsearch.common.regex.Regex;
@ -67,8 +68,11 @@ public enum PreBuiltTokenizers {
UAX_URL_EMAIL(CachingStrategy.LUCENE) { UAX_URL_EMAIL(CachingStrategy.LUCENE) {
@Override @Override
protected Tokenizer create(Version version) { protected Tokenizer create(Version version) {
// nocommit - ths one needs to be exposed in lucene for bwc if (version.luceneVersion.onOrAfter(org.apache.lucene.util.Version.LUCENE_4_7_0)) {
return new UAX29URLEmailTokenizer(); return new UAX29URLEmailTokenizer();
} else {
return new UAX29URLEmailTokenizer40();
}
} }
}, },