lucene 4: Converted Analyzers in MapperService
This commit is contained in:
parent
9f45b683d6
commit
724fadd2cd
|
@ -25,7 +25,7 @@ import com.google.common.collect.Iterators;
|
|||
import com.google.common.collect.Sets;
|
||||
import com.google.common.collect.UnmodifiableIterator;
|
||||
import org.apache.lucene.analysis.Analyzer;
|
||||
import org.apache.lucene.analysis.TokenStream;
|
||||
import org.apache.lucene.analysis.AnalyzerWrapper;
|
||||
import org.apache.lucene.index.Term;
|
||||
import org.apache.lucene.queries.FilterClause;
|
||||
import org.apache.lucene.search.BooleanClause;
|
||||
|
@ -864,7 +864,7 @@ public class MapperService extends AbstractIndexComponent implements Iterable<Do
|
|||
}
|
||||
}
|
||||
|
||||
final class SmartIndexNameSearchAnalyzer extends Analyzer {
|
||||
final class SmartIndexNameSearchAnalyzer extends AnalyzerWrapper {
|
||||
|
||||
private final Analyzer defaultAnalyzer;
|
||||
|
||||
|
@ -873,96 +873,34 @@ public class MapperService extends AbstractIndexComponent implements Iterable<Do
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getPositionIncrementGap(String fieldName) {
|
||||
protected Analyzer getWrappedAnalyzer(String fieldName) {
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchAnalyzer().getPositionIncrementGap(fieldName);
|
||||
return possibleDocMapper.mappers().searchAnalyzer();
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().getPositionIncrementGap(fieldName);
|
||||
return mappers.mapper().searchAnalyzer();
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().getPositionIncrementGap(fieldName);
|
||||
return mappers.mapper().searchAnalyzer();
|
||||
}
|
||||
return defaultAnalyzer.getPositionIncrementGap(fieldName);
|
||||
return defaultAnalyzer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffsetGap(Fieldable field) {
|
||||
String fieldName = field.name();
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchAnalyzer().getOffsetGap(field);
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().getOffsetGap(field);
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().getOffsetGap(field);
|
||||
}
|
||||
return defaultAnalyzer.getOffsetGap(field);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final TokenStream tokenStream(String fieldName, Reader reader) {
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchAnalyzer().tokenStream(fieldName, reader);
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().tokenStream(fieldName, reader);
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().tokenStream(fieldName, reader);
|
||||
}
|
||||
return defaultAnalyzer.tokenStream(fieldName, reader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException {
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchAnalyzer().reusableTokenStream(fieldName, reader);
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().reusableTokenStream(fieldName, reader);
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||
return mappers.mapper().searchAnalyzer().reusableTokenStream(fieldName, reader);
|
||||
}
|
||||
return defaultAnalyzer.reusableTokenStream(fieldName, reader);
|
||||
protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
|
||||
return components;
|
||||
}
|
||||
}
|
||||
|
||||
final class SmartIndexNameSearchQuoteAnalyzer extends Analyzer {
|
||||
final class SmartIndexNameSearchQuoteAnalyzer extends AnalyzerWrapper {
|
||||
|
||||
private final Analyzer defaultAnalyzer;
|
||||
|
||||
|
@ -971,92 +909,30 @@ public class MapperService extends AbstractIndexComponent implements Iterable<Do
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getPositionIncrementGap(String fieldName) {
|
||||
protected Analyzer getWrappedAnalyzer(String fieldName) {
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchQuoteAnalyzer().getPositionIncrementGap(fieldName);
|
||||
return possibleDocMapper.mappers().searchQuoteAnalyzer();
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().getPositionIncrementGap(fieldName);
|
||||
return mappers.mapper().searchQuoteAnalyzer();
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().getPositionIncrementGap(fieldName);
|
||||
return mappers.mapper().searchQuoteAnalyzer();
|
||||
}
|
||||
return defaultAnalyzer.getPositionIncrementGap(fieldName);
|
||||
return defaultAnalyzer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffsetGap(Fieldable field) {
|
||||
String fieldName = field.name();
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchQuoteAnalyzer().getOffsetGap(field);
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().getOffsetGap(field);
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().getOffsetGap(field);
|
||||
}
|
||||
return defaultAnalyzer.getOffsetGap(field);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final TokenStream tokenStream(String fieldName, Reader reader) {
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchQuoteAnalyzer().tokenStream(fieldName, reader);
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().tokenStream(fieldName, reader);
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().tokenStream(fieldName, reader);
|
||||
}
|
||||
return defaultAnalyzer.tokenStream(fieldName, reader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final TokenStream reusableTokenStream(String fieldName, Reader reader) throws IOException {
|
||||
int dotIndex = fieldName.indexOf('.');
|
||||
if (dotIndex != -1) {
|
||||
String possibleType = fieldName.substring(0, dotIndex);
|
||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||
if (possibleDocMapper != null) {
|
||||
return possibleDocMapper.mappers().searchQuoteAnalyzer().reusableTokenStream(fieldName, reader);
|
||||
}
|
||||
}
|
||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().reusableTokenStream(fieldName, reader);
|
||||
}
|
||||
|
||||
mappers = indexNameFieldMappers.get(fieldName);
|
||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||
return mappers.mapper().searchQuoteAnalyzer().reusableTokenStream(fieldName, reader);
|
||||
}
|
||||
return defaultAnalyzer.reusableTokenStream(fieldName, reader);
|
||||
protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
|
||||
return components;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue