summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/suggest/Suggest.java
diff options
context:
space:
mode:
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.java42
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);
}