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.Sets;
|
||||||
import com.google.common.collect.UnmodifiableIterator;
|
import com.google.common.collect.UnmodifiableIterator;
|
||||||
import org.apache.lucene.analysis.Analyzer;
|
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.index.Term;
|
||||||
import org.apache.lucene.queries.FilterClause;
|
import org.apache.lucene.queries.FilterClause;
|
||||||
import org.apache.lucene.search.BooleanClause;
|
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;
|
private final Analyzer defaultAnalyzer;
|
||||||
|
|
||||||
|
@ -873,96 +873,34 @@ public class MapperService extends AbstractIndexComponent implements Iterable<Do
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getPositionIncrementGap(String fieldName) {
|
protected Analyzer getWrappedAnalyzer(String fieldName) {
|
||||||
int dotIndex = fieldName.indexOf('.');
|
int dotIndex = fieldName.indexOf('.');
|
||||||
if (dotIndex != -1) {
|
if (dotIndex != -1) {
|
||||||
String possibleType = fieldName.substring(0, dotIndex);
|
String possibleType = fieldName.substring(0, dotIndex);
|
||||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||||
if (possibleDocMapper != null) {
|
if (possibleDocMapper != null) {
|
||||||
return possibleDocMapper.mappers().searchAnalyzer().getPositionIncrementGap(fieldName);
|
return possibleDocMapper.mappers().searchAnalyzer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
||||||
return mappers.mapper().searchAnalyzer().getPositionIncrementGap(fieldName);
|
return mappers.mapper().searchAnalyzer();
|
||||||
}
|
}
|
||||||
|
|
||||||
mappers = indexNameFieldMappers.get(fieldName);
|
mappers = indexNameFieldMappers.get(fieldName);
|
||||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchAnalyzer() != null) {
|
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
|
@Override
|
||||||
public int getOffsetGap(Fieldable field) {
|
protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
|
||||||
String fieldName = field.name();
|
return components;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final class SmartIndexNameSearchQuoteAnalyzer extends Analyzer {
|
final class SmartIndexNameSearchQuoteAnalyzer extends AnalyzerWrapper {
|
||||||
|
|
||||||
private final Analyzer defaultAnalyzer;
|
private final Analyzer defaultAnalyzer;
|
||||||
|
|
||||||
|
@ -971,92 +909,30 @@ public class MapperService extends AbstractIndexComponent implements Iterable<Do
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getPositionIncrementGap(String fieldName) {
|
protected Analyzer getWrappedAnalyzer(String fieldName) {
|
||||||
int dotIndex = fieldName.indexOf('.');
|
int dotIndex = fieldName.indexOf('.');
|
||||||
if (dotIndex != -1) {
|
if (dotIndex != -1) {
|
||||||
String possibleType = fieldName.substring(0, dotIndex);
|
String possibleType = fieldName.substring(0, dotIndex);
|
||||||
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
DocumentMapper possibleDocMapper = mappers.get(possibleType);
|
||||||
if (possibleDocMapper != null) {
|
if (possibleDocMapper != null) {
|
||||||
return possibleDocMapper.mappers().searchQuoteAnalyzer().getPositionIncrementGap(fieldName);
|
return possibleDocMapper.mappers().searchQuoteAnalyzer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
FieldMappers mappers = fullNameFieldMappers.get(fieldName);
|
||||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
||||||
return mappers.mapper().searchQuoteAnalyzer().getPositionIncrementGap(fieldName);
|
return mappers.mapper().searchQuoteAnalyzer();
|
||||||
}
|
}
|
||||||
|
|
||||||
mappers = indexNameFieldMappers.get(fieldName);
|
mappers = indexNameFieldMappers.get(fieldName);
|
||||||
if (mappers != null && mappers.mapper() != null && mappers.mapper().searchQuoteAnalyzer() != null) {
|
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
|
@Override
|
||||||
public int getOffsetGap(Fieldable field) {
|
protected TokenStreamComponents wrapComponents(String fieldName, TokenStreamComponents components) {
|
||||||
String fieldName = field.name();
|
return components;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue