diff --git a/src/main/java/org/elasticsearch/search/highlight/HighlightPhase.java b/src/main/java/org/elasticsearch/search/highlight/HighlightPhase.java index a46bc701efcc7..cbb65edc40722 100644 --- a/src/main/java/org/elasticsearch/search/highlight/HighlightPhase.java +++ b/src/main/java/org/elasticsearch/search/highlight/HighlightPhase.java @@ -45,19 +45,12 @@ public class HighlightPhase extends AbstractComponent implements FetchSubPhase { private final Highlighters highlighters; - private final ImmutableList sortedHighlighters; + private static final ImmutableList STANDARD_HIGHLIGHTERS_BY_PRECEDENCE = ImmutableList.of("fvh", "postings", "plain"); @Inject public HighlightPhase(Settings settings, Highlighters highlighters) { super(settings); this.highlighters = highlighters; - // TODO: would be nice if each highlighter would have a precedence and we could just sort here by this value - // we could then also add custom highlighters to this list and they could be selected automatically depending on precendence - ImmutableList.Builder sortedListBuilder = ImmutableList.builder(); - sortedListBuilder.add("fvh"); - sortedListBuilder.add("postings"); - sortedListBuilder.add("plain"); - sortedHighlighters = sortedListBuilder.build(); } @Override @@ -107,12 +100,13 @@ public void hitExecute(SearchContext context, HitContext hitContext) { String highlighterType = field.fieldOptions().highlighterType(); if (highlighterType == null) { - for(String highlighterCandidate : sortedHighlighters) { + for(String highlighterCandidate : STANDARD_HIGHLIGHTERS_BY_PRECEDENCE) { if (highlighters.get(highlighterCandidate).canHighlight(fieldMapper)) { highlighterType = highlighterCandidate; break; } } + assert highlighterType != null; } Highlighter highlighter = highlighters.get(highlighterType); if (highlighter == null) { diff --git a/src/main/java/org/elasticsearch/search/highlight/Highlighter.java b/src/main/java/org/elasticsearch/search/highlight/Highlighter.java index 6911782fc6cb1..26c3dc0bf2132 100644 --- a/src/main/java/org/elasticsearch/search/highlight/Highlighter.java +++ b/src/main/java/org/elasticsearch/search/highlight/Highlighter.java @@ -29,5 +29,5 @@ public interface Highlighter { HighlightField highlight(HighlighterContext highlighterContext); - public boolean canHighlight(FieldMapper fieldMapper); + boolean canHighlight(FieldMapper fieldMapper); } diff --git a/src/main/java/org/elasticsearch/search/highlight/Highlighters.java b/src/main/java/org/elasticsearch/search/highlight/Highlighters.java index d082c331dc758..34e165d976e16 100644 --- a/src/main/java/org/elasticsearch/search/highlight/Highlighters.java +++ b/src/main/java/org/elasticsearch/search/highlight/Highlighters.java @@ -19,11 +19,9 @@ package org.elasticsearch.search.highlight; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.inject.Inject; -import java.util.Map; import java.util.Set; /** @@ -47,8 +45,4 @@ public Highlighter get(String type) { return parsers.get(type); } - public ImmutableSet> entrySet() { - return parsers.entrySet(); - } - }