summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/suggest
diff options
context:
space:
mode:
authorRyan Ernst <ryan@iernst.net>2015-12-18 12:43:47 -0800
committerRyan Ernst <ryan@iernst.net>2015-12-18 12:43:47 -0800
commit4ea19995cff603ce8472e985c902dd2f8fadebee (patch)
tree1924076e710ba5f9e3699de25d3ed471d2afe4dd /core/src/main/java/org/elasticsearch/search/suggest
parent853e9c0fd10af51e66f5b9d63c5e6b248968c15e (diff)
Remove wildcard imports
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/suggest')
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/Suggest.java42
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/SuggestUtils.java57
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/Suggesters.java6
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionFieldStats.java1
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestParser.java5
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggester.java10
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestion.java11
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionBuilder.java14
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionContext.java6
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java8
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryQueryContext.java5
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMapping.java4
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMappings.java14
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoContextMapping.java22
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoQueryContext.java5
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateGenerator.java8
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateScorer.java10
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/phrase/DirectCandidateGenerator.java43
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/phrase/MultiCandidateGeneratorWrapper.java16
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggestionContext.java34
20 files changed, 199 insertions, 122 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);
}
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/SuggestUtils.java b/core/src/main/java/org/elasticsearch/search/suggest/SuggestUtils.java
index 8dd193f6c2..62689e6583 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/SuggestUtils.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/SuggestUtils.java
@@ -23,7 +23,16 @@ import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.search.spell.*;
+import org.apache.lucene.search.spell.DirectSpellChecker;
+import org.apache.lucene.search.spell.JaroWinklerDistance;
+import org.apache.lucene.search.spell.LevensteinDistance;
+import org.apache.lucene.search.spell.LuceneLevenshteinDistance;
+import org.apache.lucene.search.spell.NGramDistance;
+import org.apache.lucene.search.spell.StringDistance;
+import org.apache.lucene.search.spell.SuggestMode;
+import org.apache.lucene.search.spell.SuggestWord;
+import org.apache.lucene.search.spell.SuggestWordFrequencyComparator;
+import org.apache.lucene.search.spell.SuggestWordQueue;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.CharsRef;
@@ -48,13 +57,13 @@ import java.util.Locale;
public final class SuggestUtils {
public static final Comparator<SuggestWord> LUCENE_FREQUENCY = new SuggestWordFrequencyComparator();
public static final Comparator<SuggestWord> SCORE_COMPARATOR = SuggestWordQueue.DEFAULT_COMPARATOR;
-
+
private SuggestUtils() {
// utils!!
}
-
+
public static DirectSpellChecker getDirectSpellChecker(DirectSpellcheckerSettings suggestion) {
-
+
DirectSpellChecker directSpellChecker = new DirectSpellChecker();
directSpellChecker.setAccuracy(suggestion.accuracy());
Comparator<SuggestWord> comparator;
@@ -79,7 +88,7 @@ public final class SuggestUtils {
directSpellChecker.setLowerCaseTerms(false);
return directSpellChecker;
}
-
+
public static BytesRef join(BytesRef separator, BytesRefBuilder result, BytesRef... toJoin) {
result.clear();
for (int i = 0; i < toJoin.length - 1; i++) {
@@ -89,40 +98,40 @@ public final class SuggestUtils {
result.append(toJoin[toJoin.length-1]);
return result.get();
}
-
+
public static abstract class TokenConsumer {
protected CharTermAttribute charTermAttr;
protected PositionIncrementAttribute posIncAttr;
protected OffsetAttribute offsetAttr;
-
+
public void reset(TokenStream stream) {
charTermAttr = stream.addAttribute(CharTermAttribute.class);
posIncAttr = stream.addAttribute(PositionIncrementAttribute.class);
offsetAttr = stream.addAttribute(OffsetAttribute.class);
}
-
+
protected BytesRef fillBytesRef(BytesRefBuilder spare) {
spare.copyChars(charTermAttr);
return spare.get();
}
-
+
public abstract void nextToken() throws IOException;
public void end() {}
}
-
+
public static int analyze(Analyzer analyzer, BytesRef toAnalyze, String field, TokenConsumer consumer, CharsRefBuilder spare) throws IOException {
spare.copyUTF8Bytes(toAnalyze);
return analyze(analyzer, spare.get(), field, consumer);
}
-
+
public static int analyze(Analyzer analyzer, CharsRef toAnalyze, String field, TokenConsumer consumer) throws IOException {
try (TokenStream ts = analyzer.tokenStream(
field, new FastCharArrayReader(toAnalyze.chars, toAnalyze.offset, toAnalyze.length))) {
return analyze(ts, consumer);
}
}
-
+
/** NOTE: this method closes the TokenStream, even on exception, which is awkward
* because really the caller who called {@link Analyzer#tokenStream} should close it,
* but when trying that there are recursion issues when we try to use the same
@@ -147,7 +156,7 @@ public final class SuggestUtils {
}
return numTokens;
}
-
+
public static SuggestMode resolveSuggestMode(String suggestMode) {
suggestMode = suggestMode.toLowerCase(Locale.US);
if ("missing".equals(suggestMode)) {
@@ -178,7 +187,7 @@ public final class SuggestUtils {
return new LuceneLevenshteinDistance();
} else if ("levenstein".equals(distanceVal)) {
return new LevensteinDistance();
- //TODO Jaro and Winkler are 2 people - so apply same naming logic as damerau_levenshtein
+ //TODO Jaro and Winkler are 2 people - so apply same naming logic as damerau_levenshtein
} else if ("jarowinkler".equals(distanceVal)) {
return new JaroWinklerDistance();
} else if ("ngram".equals(distanceVal)) {
@@ -187,7 +196,7 @@ public final class SuggestUtils {
throw new IllegalArgumentException("Illegal distance option " + distanceVal);
}
}
-
+
public static class Fields {
public static final ParseField STRING_DISTANCE = new ParseField("string_distance");
public static final ParseField SUGGEST_MODE = new ParseField("suggest_mode");
@@ -201,8 +210,8 @@ public final class SuggestUtils {
public static final ParseField MIN_WORD_LENGTH = new ParseField("min_word_length", "min_word_len");
public static final ParseField MIN_DOC_FREQ = new ParseField("min_doc_freq");
public static final ParseField SHARD_SIZE = new ParseField("shard_size");
- }
-
+ }
+
public static boolean parseDirectSpellcheckerSettings(XContentParser parser, String fieldName,
DirectSpellcheckerSettings suggestion, ParseFieldMatcher parseFieldMatcher) throws IOException {
if ("accuracy".equals(fieldName)) {
@@ -233,10 +242,10 @@ public final class SuggestUtils {
}
return true;
}
-
+
public static boolean parseSuggestContext(XContentParser parser, MapperService mapperService, String fieldName,
SuggestionSearchContext.SuggestionContext suggestion, ParseFieldMatcher parseFieldMatcher) throws IOException {
-
+
if ("analyzer".equals(fieldName)) {
String analyzerName = parser.text();
Analyzer analyzer = mapperService.analysisService().analyzer(analyzerName);
@@ -254,10 +263,10 @@ public final class SuggestUtils {
return false;
}
return true;
-
+
}
-
-
+
+
public static void verifySuggestion(MapperService mapperService, BytesRef globalText, SuggestionContext suggestion) {
// Verify options and set defaults
if (suggestion.getField() == null) {
@@ -276,8 +285,8 @@ public final class SuggestUtils {
suggestion.setShardSize(Math.max(suggestion.getSize(), 5));
}
}
-
-
+
+
public static ShingleTokenFilterFactory.Factory getShingleFilterFactory(Analyzer analyzer) {
if (analyzer instanceof NamedAnalyzer) {
analyzer = ((NamedAnalyzer)analyzer).analyzer();
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/Suggesters.java b/core/src/main/java/org/elasticsearch/search/suggest/Suggesters.java
index 9eba50f478..af54e5dfd8 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/Suggesters.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/Suggesters.java
@@ -26,7 +26,11 @@ import org.elasticsearch.search.suggest.completion.CompletionSuggester;
import org.elasticsearch.search.suggest.phrase.PhraseSuggester;
import org.elasticsearch.search.suggest.term.TermSuggester;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
/**
*
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionFieldStats.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionFieldStats.java
index 08c0302f81..e5e1b1b919 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionFieldStats.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionFieldStats.java
@@ -20,7 +20,6 @@
package org.elasticsearch.search.suggest.completion;
import com.carrotsearch.hppc.ObjectLongHashMap;
-
import org.apache.lucene.index.Fields;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReader;
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestParser.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestParser.java
index 928a1342ec..99842ca77b 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestParser.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestParser.java
@@ -39,7 +39,10 @@ import org.elasticsearch.search.suggest.completion.context.ContextMapping;
import org.elasticsearch.search.suggest.completion.context.ContextMappings;
import java.io.IOException;
-import java.util.*;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* Parses query options for {@link CompletionSuggester}
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggester.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggester.java
index 6a0155ffb7..75211e8520 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggester.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggester.java
@@ -28,7 +28,7 @@ import org.apache.lucene.search.suggest.Lookup;
import org.apache.lucene.search.suggest.document.CompletionQuery;
import org.apache.lucene.search.suggest.document.TopSuggestDocs;
import org.apache.lucene.search.suggest.document.TopSuggestDocsCollector;
-import org.apache.lucene.util.*;
+import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.PriorityQueue;
import org.elasticsearch.common.text.Text;
import org.elasticsearch.index.fielddata.AtomicFieldData;
@@ -40,7 +40,13 @@ import org.elasticsearch.search.suggest.SuggestContextParser;
import org.elasticsearch.search.suggest.Suggester;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
public class CompletionSuggester extends Suggester<CompletionSuggestionContext> {
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestion.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestion.java
index 66c21c5816..ed3ebead7f 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestion.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestion.java
@@ -21,14 +21,19 @@ package org.elasticsearch.search.suggest.completion;
import org.apache.lucene.search.suggest.Lookup;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
-import org.elasticsearch.common.logging.ESLogger;
-import org.elasticsearch.common.logging.ESLoggerFactory;
import org.elasticsearch.common.text.Text;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.search.suggest.Suggest;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
* Suggestion response for {@link CompletionSuggester} results
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionBuilder.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionBuilder.java
index fe80f70e26..100e701c03 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionBuilder.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionBuilder.java
@@ -30,15 +30,19 @@ import org.elasticsearch.search.suggest.completion.context.CategoryQueryContext;
import org.elasticsearch.search.suggest.completion.context.GeoQueryContext;
import java.io.IOException;
-import java.util.*;
-
-import static org.elasticsearch.search.suggest.completion.context.CategoryContextMapping.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
* Defines a suggest command based on a prefix, typically to provide "auto-complete" functionality
* for users as they type search terms. The implementation of the completion service uses FSTs that
- * are created at index-time and so must be defined in the mapping with the type "completion" before
- * indexing.
+ * are created at index-time and so must be defined in the mapping with the type "completion" before
+ * indexing.
*/
public class CompletionSuggestionBuilder extends SuggestBuilder.SuggestionBuilder<CompletionSuggestionBuilder> {
private FuzzyOptionsBuilder fuzzyOptionsBuilder;
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionContext.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionContext.java
index 8ffd497eb3..535151b476 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionContext.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/CompletionSuggestionContext.java
@@ -28,7 +28,11 @@ import org.elasticsearch.search.suggest.SuggestionSearchContext;
import org.elasticsearch.search.suggest.completion.context.ContextMapping;
import org.elasticsearch.search.suggest.completion.context.ContextMappings;
-import java.util.*;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
*
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
index 23c9ca730b..dffbb1aa80 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryContextMapping.java
@@ -29,7 +29,13 @@ import org.elasticsearch.index.mapper.ParseContext;
import org.elasticsearch.index.mapper.ParseContext.Document;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
/**
* A {@link ContextMapping} that uses a simple string as a criteria
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryQueryContext.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryQueryContext.java
index ee2655ebdd..c493126577 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryQueryContext.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/CategoryQueryContext.java
@@ -21,7 +21,10 @@ package org.elasticsearch.search.suggest.completion.context;
import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.common.ParseField;
-import org.elasticsearch.common.xcontent.*;
+import org.elasticsearch.common.xcontent.ObjectParser;
+import org.elasticsearch.common.xcontent.ToXContent;
+import org.elasticsearch.common.xcontent.XContentBuilder;
+import org.elasticsearch.common.xcontent.XContentParser;
import java.io.IOException;
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMapping.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMapping.java
index b15577d6fb..42e5cc0a15 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMapping.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMapping.java
@@ -28,7 +28,9 @@ import org.elasticsearch.index.mapper.ParseContext;
import org.elasticsearch.index.mapper.core.CompletionFieldMapper;
import java.io.IOException;
-import java.util.*;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
/**
* A {@link ContextMapping} defines criteria that can be used to
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMappings.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMappings.java
index 87b702c2ff..9d4bed4f66 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMappings.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/ContextMappings.java
@@ -32,9 +32,19 @@ import org.elasticsearch.index.mapper.ParseContext;
import org.elasticsearch.index.mapper.core.CompletionFieldMapper;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
-import static org.elasticsearch.search.suggest.completion.context.ContextMapping.*;
+import static org.elasticsearch.search.suggest.completion.context.ContextMapping.FIELD_NAME;
+import static org.elasticsearch.search.suggest.completion.context.ContextMapping.FIELD_TYPE;
+import static org.elasticsearch.search.suggest.completion.context.ContextMapping.QueryContext;
+import static org.elasticsearch.search.suggest.completion.context.ContextMapping.Type;
/**
* ContextMappings indexes context-enabled suggestion fields
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoContextMapping.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoContextMapping.java
index 57283c1bd0..f2f3d10215 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoContextMapping.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoContextMapping.java
@@ -36,7 +36,13 @@ import org.elasticsearch.index.mapper.ParseContext.Document;
import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
/**
* A {@link ContextMapping} that uses a geo location/area as a
@@ -295,14 +301,14 @@ public class GeoContextMapping extends ContextMapping {
private int precision = DEFAULT_PRECISION;
private String fieldName = null;
-
+
protected Builder(String name) {
super(name);
}
/**
* Set the precision use o make suggestions
- *
+ *
* @param precision
* precision as distance with {@link DistanceUnit}. Default:
* meters
@@ -314,7 +320,7 @@ public class GeoContextMapping extends ContextMapping {
/**
* Set the precision use o make suggestions
- *
+ *
* @param precision
* precision value
* @param unit
@@ -327,23 +333,23 @@ public class GeoContextMapping extends ContextMapping {
/**
* Set the precision use o make suggestions
- *
+ *
* @param meters
* precision as distance in meters
* @return this
*/
public Builder precision(double meters) {
int level = GeoUtils.geoHashLevelsForPrecision(meters);
- // Ceiling precision: we might return more results
+ // Ceiling precision: we might return more results
if (GeoUtils.geoHashCellSize(level) < meters) {
- level = Math.max(1, level - 1);
+ level = Math.max(1, level - 1);
}
return precision(level);
}
/**
* Set the precision use o make suggestions
- *
+ *
* @param level
* maximum length of geohashes
* @return this
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoQueryContext.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoQueryContext.java
index 75cab1e8e8..da9191bf2d 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoQueryContext.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/context/GeoQueryContext.java
@@ -32,7 +32,10 @@ import java.io.IOException;
import java.util.Collections;
import java.util.List;
-import static org.elasticsearch.search.suggest.completion.context.GeoContextMapping.*;
+import static org.elasticsearch.search.suggest.completion.context.GeoContextMapping.CONTEXT_BOOST;
+import static org.elasticsearch.search.suggest.completion.context.GeoContextMapping.CONTEXT_NEIGHBOURS;
+import static org.elasticsearch.search.suggest.completion.context.GeoContextMapping.CONTEXT_PRECISION;
+import static org.elasticsearch.search.suggest.completion.context.GeoContextMapping.CONTEXT_VALUE;
/**
* Defines the query context for {@link GeoContextMapping}
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateGenerator.java b/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateGenerator.java
index 56c6181d61..f98822296b 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateGenerator.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateGenerator.java
@@ -18,12 +18,12 @@
*/
package org.elasticsearch.search.suggest.phrase;
-import java.io.IOException;
-
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.Candidate;
import org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.CandidateSet;
+import java.io.IOException;
+
//TODO public for tests
public abstract class CandidateGenerator {
@@ -35,7 +35,7 @@ public abstract class CandidateGenerator {
CandidateSet set = new CandidateSet(Candidate.EMPTY, createCandidate(term, true));
return drawCandidates(set);
}
-
+
public Candidate createCandidate(BytesRef term, boolean userInput) throws IOException {
return createCandidate(term, frequency(term), 1.0, userInput);
}
@@ -47,4 +47,4 @@ public abstract class CandidateGenerator {
public abstract CandidateSet drawCandidates(CandidateSet set) throws IOException;
-} \ No newline at end of file
+}
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateScorer.java b/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateScorer.java
index b027497479..b3dad43ad3 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateScorer.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/phrase/CandidateScorer.java
@@ -17,13 +17,13 @@
* under the License.
*/
package org.elasticsearch.search.suggest.phrase;
-import java.io.IOException;
-import java.util.Arrays;
import org.apache.lucene.util.PriorityQueue;
import org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.Candidate;
import org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.CandidateSet;
+import java.io.IOException;
+
final class CandidateScorer {
private final WordScorer scorer;
private final int maxNumCorrections;
@@ -34,8 +34,8 @@ final class CandidateScorer {
this.maxNumCorrections = maxNumCorrections;
this.gramSize = gramSize;
}
-
-
+
+
public Correction[] findBestCandiates(CandidateSet[] sets, float errorFraction, double cutoffScore) throws IOException {
if (sets.length == 0) {
return Correction.EMPTY;
@@ -107,7 +107,7 @@ final class CandidateScorer {
}
}
}
-
+
public double score(Candidate[] path, CandidateSet[] candidates) throws IOException {
double score = 0.0d;
for (int i = 0; i < candidates.length; i++) {
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/phrase/DirectCandidateGenerator.java b/core/src/main/java/org/elasticsearch/search/suggest/phrase/DirectCandidateGenerator.java
index 8af181f0e6..5b937500d6 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/phrase/DirectCandidateGenerator.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/phrase/DirectCandidateGenerator.java
@@ -19,7 +19,11 @@
package org.elasticsearch.search.suggest.phrase;
import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.index.*;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.index.Terms;
+import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.search.spell.DirectSpellChecker;
import org.apache.lucene.search.spell.SuggestMode;
import org.apache.lucene.search.spell.SuggestWord;
@@ -29,7 +33,12 @@ import org.apache.lucene.util.CharsRefBuilder;
import org.elasticsearch.search.suggest.SuggestUtils;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
//TODO public for tests
public final class DirectCandidateGenerator extends CandidateGenerator {
@@ -49,7 +58,7 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
private final CharsRefBuilder spare = new CharsRefBuilder();
private final BytesRefBuilder byteSpare = new BytesRefBuilder();
private final int numCandidates;
-
+
public DirectCandidateGenerator(DirectSpellChecker spellchecker, String field, SuggestMode suggestMode, IndexReader reader, double nonErrorLikelihood, int numCandidates) throws IOException {
this(spellchecker, field, suggestMode, reader, nonErrorLikelihood, numCandidates, null, null, MultiFields.getTerms(reader, field));
}
@@ -95,15 +104,15 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
public long internalFrequency(BytesRef term) throws IOException {
if (termsEnum.seekExact(term)) {
- return useTotalTermFrequency ? termsEnum.totalTermFreq() : termsEnum.docFreq();
+ return useTotalTermFrequency ? termsEnum.totalTermFreq() : termsEnum.docFreq();
}
return 0;
}
-
+
public String getField() {
return field;
}
-
+
/* (non-Javadoc)
* @see org.elasticsearch.search.suggest.phrase.CandidateGenerator#drawCandidates(org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.CandidateSet, int)
*/
@@ -123,14 +132,14 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
set.addCandidates(candidates);
return set;
}
-
+
protected BytesRef preFilter(final BytesRef term, final CharsRefBuilder spare, final BytesRefBuilder byteSpare) throws IOException {
if (preFilter == null) {
return term;
}
final BytesRefBuilder result = byteSpare;
SuggestUtils.analyze(preFilter, term, field, new SuggestUtils.TokenConsumer() {
-
+
@Override
public void nextToken() throws IOException {
this.fillBytesRef(result);
@@ -138,7 +147,7 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
}, spare);
return result.get();
}
-
+
protected void postFilter(final Candidate candidate, final CharsRefBuilder spare, BytesRefBuilder byteSpare, final List<Candidate> candidates) throws IOException {
if (postFilter == null) {
candidates.add(candidate);
@@ -148,11 +157,11 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
@Override
public void nextToken() throws IOException {
this.fillBytesRef(result);
-
+
if (posIncAttr.getPositionIncrement() > 0 && result.get().bytesEquals(candidate.term)) {
BytesRef term = result.toBytesRef();
// We should not use frequency(term) here because it will analyze the term again
- // If preFilter and postFilter are the same analyzer it would fail.
+ // If preFilter and postFilter are the same analyzer it would fail.
long freq = internalFrequency(term);
candidates.add(new Candidate(result.toBytesRef(), freq, candidate.stringDistance, score(candidate.frequency, candidate.stringDistance, dictSize), false));
} else {
@@ -162,19 +171,19 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
}, spare);
}
}
-
+
private double score(long frequency, double errorScore, long dictionarySize) {
return errorScore * (((double)frequency + 1) / ((double)dictionarySize +1));
}
-
+
protected long thresholdFrequency(long termFrequency, long dictionarySize) {
if (termFrequency > 0) {
return (long) Math.max(0, Math.round(termFrequency * (Math.log10(termFrequency - frequencyPlateau) * (1.0 / Math.log10(logBase))) + 1));
}
return 0;
-
+
}
-
+
public static class CandidateSet {
public Candidate[] candidates;
public final Candidate originalTerm;
@@ -183,7 +192,7 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
this.candidates = candidates;
this.originalTerm = originalTerm;
}
-
+
public void addCandidates(List<Candidate> candidates) {
// Merge new candidates into existing ones,
// deduping:
@@ -223,7 +232,7 @@ public final class DirectCandidateGenerator extends CandidateGenerator {
@Override
public String toString() {
- return "Candidate [term=" + term.utf8ToString() + ", stringDistance=" + stringDistance + ", score=" + score + ", frequency=" + frequency +
+ return "Candidate [term=" + term.utf8ToString() + ", stringDistance=" + stringDistance + ", score=" + score + ", frequency=" + frequency +
(userInput ? ", userInput" : "" ) + "]";
}
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/phrase/MultiCandidateGeneratorWrapper.java b/core/src/main/java/org/elasticsearch/search/suggest/phrase/MultiCandidateGeneratorWrapper.java
index 0d6f893298..4936973b23 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/phrase/MultiCandidateGeneratorWrapper.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/phrase/MultiCandidateGeneratorWrapper.java
@@ -18,17 +18,17 @@
*/
package org.elasticsearch.search.suggest.phrase;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Comparator;
-
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.Candidate;
import org.elasticsearch.search.suggest.phrase.DirectCandidateGenerator.CandidateSet;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Comparator;
//TODO public for tests
public final class MultiCandidateGeneratorWrapper extends CandidateGenerator {
-
+
private final CandidateGenerator[] candidateGenerator;
private int numCandidates ;
@@ -53,7 +53,7 @@ public final class MultiCandidateGeneratorWrapper extends CandidateGenerator {
}
return reduce(set, numCandidates);
}
-
+
private final CandidateSet reduce(CandidateSet set, int numCandidates) {
if (set.candidates.length > numCandidates) {
Candidate[] candidates = set.candidates;
@@ -61,14 +61,14 @@ public final class MultiCandidateGeneratorWrapper extends CandidateGenerator {
@Override
public int compare(Candidate left, Candidate right) {
- return Double.compare(right.score, left.score);
+ return Double.compare(right.score, left.score);
}
});
Candidate[] newSet = new Candidate[numCandidates];
System.arraycopy(candidates, 0, newSet, 0, numCandidates);
set.candidates = newSet;
}
-
+
return set;
}
@Override
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggestionContext.java b/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggestionContext.java
index 8d2a6fdd12..04d06abbfd 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggestionContext.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggestionContext.java
@@ -18,11 +18,6 @@
*/
package org.elasticsearch.search.suggest.phrase;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.script.CompiledScript;
@@ -30,6 +25,11 @@ import org.elasticsearch.search.suggest.DirectSpellcheckerSettings;
import org.elasticsearch.search.suggest.Suggester;
import org.elasticsearch.search.suggest.SuggestionSearchContext.SuggestionContext;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
class PhraseSuggestionContext extends SuggestionContext {
private final BytesRef SEPARATOR = new BytesRef(" ");
private float maxErrors = 0.5f;
@@ -81,27 +81,27 @@ class PhraseSuggestionContext extends SuggestionContext {
public void addGenerator(DirectCandidateGenerator generator) {
this.generators.add(generator);
}
-
+
public List<DirectCandidateGenerator> generators() {
return this.generators ;
}
-
+
public void setGramSize(int gramSize) {
this.gramSize = gramSize;
}
-
+
public int gramSize() {
return gramSize;
}
-
+
public float confidence() {
return confidence;
}
-
+
public void setConfidence(float confidence) {
this.confidence = confidence;
}
-
+
public void setModel(WordScorer.WordScorerFactory scorer) {
this.scorer = scorer;
}
@@ -134,7 +134,7 @@ class PhraseSuggestionContext extends SuggestionContext {
}
this.size = size;
}
-
+
public Analyzer preFilter() {
return preFilter;
}
@@ -150,22 +150,22 @@ class PhraseSuggestionContext extends SuggestionContext {
public void postFilter(Analyzer postFilter) {
this.postFilter = postFilter;
}
-
-
+
+
}
public void setRequireUnigram(boolean requireUnigram) {
this.requireUnigram = requireUnigram;
}
-
+
public boolean getRequireUnigram() {
return requireUnigram;
}
-
+
public void setTokenLimit(int tokenLimit) {
this.tokenLimit = tokenLimit;
}
-
+
public int getTokenLimit() {
return tokenLimit;
}