diff options
author | Nik Everett <nik9000@gmail.com> | 2016-04-07 10:34:14 -0400 |
---|---|---|
committer | Nik Everett <nik9000@gmail.com> | 2016-04-27 14:10:01 -0400 |
commit | 1feb9da3f2469be8c19d25900ab19e2de940a586 (patch) | |
tree | d2080fdcbff509d4a343b10aa63e8ab83865a2a7 /core/src/main/java/org/elasticsearch/search/suggest/completion | |
parent | c2c4ed37364bea3a9285b3fae8614829e22b54e9 (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.java | 9 |
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; |