diff options
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/suggest/Suggest.java')
-rw-r--r-- | core/src/main/java/org/elasticsearch/search/suggest/Suggest.java | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/Suggest.java b/core/src/main/java/org/elasticsearch/search/suggest/Suggest.java index db60d58953..5ec9226438 100644 --- a/core/src/main/java/org/elasticsearch/search/suggest/Suggest.java +++ b/core/src/main/java/org/elasticsearch/search/suggest/Suggest.java @@ -20,7 +20,6 @@ package org.elasticsearch.search.suggest; import org.apache.lucene.util.CollectionUtil; import org.elasticsearch.ElasticsearchException; - import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Streamable; @@ -36,7 +35,12 @@ import org.elasticsearch.search.suggest.phrase.PhraseSuggestion; import org.elasticsearch.search.suggest.term.TermSuggestion; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * Top level suggest result, containing the result for each suggestion. @@ -80,19 +84,19 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex this.name = name; this.suggestions = suggestions; } - + @Override public Iterator<Suggestion<? extends Entry<? extends Option>>> iterator() { return suggestions.iterator(); } - + /** * The number of suggestions in this {@link Suggest} result */ public int size() { return suggestions.size(); } - + public <T extends Suggestion<? extends Entry<? extends Option>>> T getSuggestion(String name) { if (suggestions.isEmpty() || name == null) { return null; @@ -156,7 +160,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex } builder.endObject(); } - + return builder; } @@ -165,7 +169,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex result.readFrom(in); return result; } - + public static Map<String, List<Suggest.Suggestion>> group(Map<String, List<Suggest.Suggestion>> groupedSuggestions, Suggest suggest) { for (Suggestion<? extends Entry<? extends Option>> suggestion : suggest) { List<Suggestion> list = groupedSuggestions.get(suggestion.getName()); @@ -193,8 +197,8 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex * The suggestion responses corresponding with the suggestions in the request. */ public static class Suggestion<T extends Suggestion.Entry> implements Iterable<T>, Streamable, ToXContent { - - + + public static final int TYPE = 0; protected String name; protected int size; @@ -211,7 +215,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex public void addTerm(T entry) { entries.add(entry); } - + public int getType() { return TYPE; } @@ -267,11 +271,11 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex } return leader; } - + protected Comparator<Option> sortComparator() { return COMPARATOR; } - + /** * Trims the number of options per suggest text term to the requested size. * For internal usage. @@ -293,12 +297,12 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex entries.add(newEntry); } } - + protected T newEntry() { return (T)new Entry(); } - + protected void innerReadFrom(StreamInput in) throws IOException { name = in.readString(); size = in.readVInt(); @@ -362,7 +366,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex public void addOption(O option) { options.add(option); } - + protected void sort(Comparator<O> comparator) { CollectionUtil.timSort(options, comparator); } @@ -481,7 +485,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex options.add(newOption); } } - + protected O newOption(){ return (O) new Option(); } @@ -578,7 +582,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex public boolean collateMatch() { return (collateMatch != null) ? collateMatch : true; } - + protected void setScore(float score) { this.score = score; } @@ -606,7 +610,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex builder.endObject(); return builder; } - + protected XContentBuilder innerToXContent(XContentBuilder builder, Params params) throws IOException { builder.field(Fields.TEXT, text); if (highlighted != null) { @@ -618,7 +622,7 @@ public class Suggest implements Iterable<Suggest.Suggestion<? extends Entry<? ex } return builder; } - + protected void mergeInto(Option otherOption) { score = Math.max(score, otherOption.score); } |