lucene 4: migrate char filter from CharStream to Reader

This commit is contained in:
Igor Motov 2012-10-25 21:23:47 -04:00 committed by Shay Banon
parent f572a7bcf7
commit 097cb2dac7
5 changed files with 17 additions and 18 deletions

View File

@ -19,7 +19,7 @@
package org.elasticsearch.index.analysis;
import org.apache.lucene.analysis.CharStream;
import java.io.Reader;
/**
*
@ -28,5 +28,5 @@ public interface CharFilterFactory {
String name();
CharStream create(CharStream tokenStream);
Reader create(Reader tokenStream);
}

View File

@ -106,11 +106,9 @@ public final class CustomAnalyzer extends Analyzer {
private Reader charFilterIfNeeded(Reader reader) {
if (charFilters != null && charFilters.length > 0) {
CharStream charStream = CharReader.get(reader);
for (CharFilterFactory charFilter : charFilters) {
charStream = charFilter.create(charStream);
reader = charFilter.create(reader);
}
reader = charStream;
}
return reader;
}

View File

@ -20,7 +20,6 @@
package org.elasticsearch.index.analysis;
import com.google.common.collect.ImmutableSet;
import org.apache.lucene.analysis.CharStream;
import org.apache.lucene.analysis.charfilter.HTMLStripCharFilter;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.assistedinject.Assisted;
@ -28,6 +27,8 @@ import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.settings.IndexSettings;
import java.io.Reader;
/**
*
*/
@ -51,7 +52,7 @@ public class HtmlStripCharFilterFactory extends AbstractCharFilterFactory {
}
@Override
public CharStream create(CharStream tokenStream) {
public Reader create(Reader tokenStream) {
return new HTMLStripCharFilter(tokenStream, escapedTags);
}
}

View File

@ -19,9 +19,8 @@
package org.elasticsearch.index.analysis;
import org.apache.lucene.analysis.CharStream;
import org.apache.lucene.analysis.MappingCharFilter;
import org.apache.lucene.analysis.NormalizeCharMap;
import org.apache.lucene.analysis.charfilter.MappingCharFilter;
import org.apache.lucene.analysis.charfilter.NormalizeCharMap;
import org.elasticsearch.ElasticSearchIllegalArgumentException;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.assistedinject.Assisted;
@ -30,6 +29,7 @@ import org.elasticsearch.env.Environment;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.settings.IndexSettings;
import java.io.Reader;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -37,7 +37,7 @@ import java.util.regex.Pattern;
@AnalysisSettingsRequired
public class MappingCharFilterFactory extends AbstractCharFilterFactory {
private final NormalizeCharMap normMap;
private final NormalizeCharMap.Builder normMapBuilder;
@Inject
public MappingCharFilterFactory(Index index, @IndexSettings Settings indexSettings, Environment env, @Assisted String name, @Assisted Settings settings) {
@ -48,13 +48,13 @@ public class MappingCharFilterFactory extends AbstractCharFilterFactory {
throw new ElasticSearchIllegalArgumentException("mapping requires either `mappings` or `mappings_path` to be configured");
}
normMap = new NormalizeCharMap();
parseRules(rules, normMap);
normMapBuilder = new NormalizeCharMap.Builder();
parseRules(rules, normMapBuilder);
}
@Override
public CharStream create(CharStream tokenStream) {
return new MappingCharFilter(normMap, tokenStream);
public Reader create(Reader tokenStream) {
return new MappingCharFilter(normMapBuilder.build(), tokenStream);
}
// source => target
@ -63,7 +63,7 @@ public class MappingCharFilterFactory extends AbstractCharFilterFactory {
/**
* parses a list of MappingCharFilter style rules into a normalize char map
*/
private void parseRules(List<String> rules, NormalizeCharMap map) {
private void parseRules(List<String> rules, NormalizeCharMap.Builder map) {
for (String rule : rules) {
Matcher m = rulePattern.matcher(rule);
if (!m.find())

View File

@ -658,7 +658,7 @@ public class IndicesAnalysisService extends AbstractComponent {
}
@Override
public CharStream create(CharStream tokenStream) {
public Reader create(Reader tokenStream) {
return new HTMLStripCharFilter(tokenStream);
}
}));
@ -670,7 +670,7 @@ public class IndicesAnalysisService extends AbstractComponent {
}
@Override
public CharStream create(CharStream tokenStream) {
public Reader create(Reader tokenStream) {
return new HTMLStripCharFilter(tokenStream);
}
}));