Mappings: Remove fieldSearchAnalyzer and fieldSearchQuoteAnalyzer from

MapperService.

Instead, get the FieldMapper for the field and check the analyzer there.
This commit is contained in:
Ryan Ernst 2015-01-12 13:14:32 -08:00
parent c29c18f0f2
commit 48bc132927
2 changed files with 12 additions and 12 deletions

View File

@ -905,15 +905,6 @@ public class MapperService extends AbstractIndexComponent {
return this.searchQuoteAnalyzer;
}
public Analyzer fieldSearchAnalyzer(String field) {
return this.searchAnalyzer.getWrappedAnalyzer(field);
}
public Analyzer fieldSearchQuoteAnalyzer(String field) {
return this.searchQuoteAnalyzer.getWrappedAnalyzer(field);
}
/**
* Resolves the closest inherited {@link ObjectMapper} that is nested.
*/

View File

@ -27,6 +27,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentParser.Token;
import org.elasticsearch.index.analysis.ShingleTokenFilterFactory;
import org.elasticsearch.index.mapper.FieldMapper;
import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.script.CompiledScript;
import org.elasticsearch.search.suggest.SuggestContextParser;
@ -181,8 +182,16 @@ public final class PhraseSuggestParser implements SuggestContextParser {
throw new ElasticsearchIllegalArgumentException("The required field option is missing");
}
if (mapperService.smartNameFieldMapper(suggestion.getField()) == null) {
FieldMapper fieldMapper = mapperService.smartNameFieldMapper(suggestion.getField());
if (fieldMapper == null) {
throw new ElasticsearchIllegalArgumentException("No mapping found for field [" + suggestion.getField() + "]");
} else if (suggestion.getAnalyzer() == null) {
// no analyzer name passed in, so try the field's analyzer, or the default analyzer
if (fieldMapper.searchAnalyzer() == null) {
suggestion.setAnalyzer(mapperService.searchAnalyzer());
} else {
suggestion.setAnalyzer(fieldMapper.searchAnalyzer());
}
}
if (suggestion.model() == null) {
@ -190,7 +199,7 @@ public final class PhraseSuggestParser implements SuggestContextParser {
}
if (!gramSizeSet || suggestion.generators().isEmpty()) {
final ShingleTokenFilterFactory.Factory shingleFilterFactory = SuggestUtils.getShingleFilterFactory(suggestion.getAnalyzer() == null ? mapperService.fieldSearchAnalyzer(suggestion.getField()) : suggestion.getAnalyzer()); ;
final ShingleTokenFilterFactory.Factory shingleFilterFactory = SuggestUtils.getShingleFilterFactory(suggestion.getAnalyzer());
if (!gramSizeSet) {
// try to detect the shingle size
if (shingleFilterFactory != null) {