summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/suggest/completion
diff options
context:
space:
mode:
authorNik Everett <nik9000@gmail.com>2016-04-07 10:34:14 -0400
committerNik Everett <nik9000@gmail.com>2016-04-27 14:10:01 -0400
commit1feb9da3f2469be8c19d25900ab19e2de940a586 (patch)
treed2080fdcbff509d4a343b10aa63e8ab83865a2a7 /core/src/main/java/org/elasticsearch/search/suggest/completion
parentc2c4ed37364bea3a9285b3fae8614829e22b54e9 (diff)
ConstructingObjectParser is ObjectParser for ctors
ObjectParser makes parsing XContent 95% easier. No more nested loops. No more forgetting to use ParseField. Consistent handling for arrays. Awesome. But ObjectParser doesn't support building things objects whose constructor arguments are mixed in with the rest of its properties. Enter ConstructingObjectParser! ConstructingObjectParser queues up fields until all of the constructor arguments have been parsed and then sets them on the target object. Closes #17352
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/suggest/completion')
-rw-r--r--core/src/main/java/org/elasticsearch/search/suggest/completion/FuzzyOptions.java9
1 files changed, 1 insertions, 8 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/suggest/completion/FuzzyOptions.java b/core/src/main/java/org/elasticsearch/search/suggest/completion/FuzzyOptions.java
index 1187754d15..3ae05f9ecf 100644
--- a/core/src/main/java/org/elasticsearch/search/suggest/completion/FuzzyOptions.java
+++ b/core/src/main/java/org/elasticsearch/search/suggest/completion/FuzzyOptions.java
@@ -21,7 +21,6 @@ package org.elasticsearch.search.suggest.completion;
import org.apache.lucene.search.suggest.document.FuzzyCompletionQuery;
import org.apache.lucene.util.automaton.Operations;
-import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.ParseFieldMatcherSupplier;
import org.elasticsearch.common.io.stream.StreamInput;
@@ -65,13 +64,7 @@ public class FuzzyOptions implements ToXContent, Writeable {
PARSER.declareBoolean(Builder::setUnicodeAware, UNICODE_AWARE_FIELD);
PARSER.declareInt(Builder::setFuzzyPrefixLength, PREFIX_LENGTH_FIELD);
PARSER.declareBoolean(Builder::setTranspositions, TRANSPOSITION_FIELD);
- PARSER.declareValue((a, b) -> {
- try {
- a.setFuzziness(Fuzziness.parse(b).asDistance());
- } catch (IOException e) {
- throw new ElasticsearchException(e);
- }
- }, Fuzziness.FIELD);
+ PARSER.declareField(Builder::setFuzziness, Fuzziness::parse, Fuzziness.FIELD, ObjectParser.ValueType.VALUE);
}
private int editDistance;