From 3f045dee1fac51edd6cf754be616fd9aa95fedd5 Mon Sep 17 00:00:00 2001 From: kimchy Date: Sat, 20 Feb 2010 02:13:06 +0200 Subject: [PATCH] Accept also 0 int number to indicate false, and any other number to indicate true (on top of accepting json boolean type), closes #26. --- .../index/query/json/BoolJsonQueryParser.java | 4 ++++ .../index/query/json/QueryStringJsonQueryParser.java | 6 ++++++ .../index/query/json/RangeJsonFilterParser.java | 12 ++++++++++-- .../index/query/json/RangeJsonQueryParser.java | 12 ++++++++++-- .../index/query/json/SpanNearJsonQueryParser.java | 10 ++++++++-- .../search/fetch/ExplainParseElement.java | 6 +++++- .../elasticsearch/search/query/SortParseElement.java | 4 ++++ 7 files changed, 47 insertions(+), 7 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/BoolJsonQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/BoolJsonQueryParser.java index d3e297eea3107..b2a4bf8a441ce 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/BoolJsonQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/BoolJsonQueryParser.java @@ -89,6 +89,10 @@ public class BoolJsonQueryParser extends AbstractIndexComponent implements JsonQ if ("disableCoord".equals(currentFieldName)) { disableCoord = token == JsonToken.VALUE_TRUE; } + } else if (token == JsonToken.VALUE_NUMBER_INT) { + if ("disableCoord".equals(currentFieldName)) { + disableCoord = jp.getIntValue() != 0; + } } else { if ("boost".equals(currentFieldName)) { boost = jp.getFloatValue(); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/QueryStringJsonQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/QueryStringJsonQueryParser.java index 51324b088fa81..24ead4e3f61c1 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/QueryStringJsonQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/QueryStringJsonQueryParser.java @@ -117,6 +117,12 @@ public class QueryStringJsonQueryParser extends AbstractIndexComponent implement fuzzyMinSim = jp.getFloatValue(); } else if ("boost".equals(currentFieldName)) { boost = jp.getFloatValue(); + } else if ("allowLeadingWildcard".equals(currentFieldName)) { + allowLeadingWildcard = jp.getIntValue() != 0; + } else if ("lowercaseExpandedTerms".equals(currentFieldName)) { + lowercaseExpandedTerms = jp.getIntValue() != 0; + } else if ("enablePositionIncrements".equals(currentFieldName)) { + enablePositionIncrements = jp.getIntValue() != 0; } } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonFilterParser.java index 5dcd244258cfe..01f72a28116e8 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonFilterParser.java @@ -84,9 +84,17 @@ public class RangeJsonFilterParser extends AbstractIndexComponent implements Jso to = jp.getText(); } } else if ("includeLower".equals(currentFieldName)) { - includeLower = token == JsonToken.VALUE_TRUE; + if (token == JsonToken.VALUE_NUMBER_INT) { + includeLower = jp.getIntValue() != 0; + } else { + includeLower = token == JsonToken.VALUE_TRUE; + } } else if ("includeUpper".equals(currentFieldName)) { - includeUpper = token == JsonToken.VALUE_TRUE; + if (token == JsonToken.VALUE_NUMBER_INT) { + includeUpper = jp.getIntValue() != 0; + } else { + includeUpper = token == JsonToken.VALUE_TRUE; + } } } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonQueryParser.java index 62f4b94c279bb..0a6374c8d2188 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/RangeJsonQueryParser.java @@ -81,9 +81,17 @@ public class RangeJsonQueryParser extends AbstractIndexComponent implements Json to = jp.getText(); } } else if ("includeLower".equals(currentFieldName)) { - includeLower = token == JsonToken.VALUE_TRUE; + if (token == JsonToken.VALUE_NUMBER_INT) { + includeLower = jp.getIntValue() != 0; + } else { + includeLower = token == JsonToken.VALUE_TRUE; + } } else if ("includeUpper".equals(currentFieldName)) { - includeUpper = token == JsonToken.VALUE_TRUE; + if (token == JsonToken.VALUE_NUMBER_INT) { + includeUpper = jp.getIntValue() != 0; + } else { + includeUpper = token == JsonToken.VALUE_TRUE; + } } else if ("boost".equals(currentFieldName)) { boost = jp.getFloatValue(); } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/SpanNearJsonQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/SpanNearJsonQueryParser.java index 72ee2044023bc..7a67d46195b1d 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/SpanNearJsonQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/json/SpanNearJsonQueryParser.java @@ -82,11 +82,17 @@ public class SpanNearJsonQueryParser extends AbstractIndexComponent implements J } else if ("collectPayloads".equals(currentFieldName)) { collectPayloads = token == JsonToken.VALUE_TRUE; } + } else if (token == JsonToken.VALUE_NUMBER_INT) { + if ("inOrder".equals(currentFieldName)) { + inOrder = jp.getIntValue() != 0; + } else if ("collectPayloads".equals(currentFieldName)) { + collectPayloads = jp.getIntValue() != 0; + } else if ("slop".equals(currentFieldName)) { + slop = jp.getIntValue(); + } } else { if ("boost".equals(currentFieldName)) { boost = jp.getFloatValue(); - } else if ("slop".equals(currentFieldName)) { - slop = jp.getIntValue(); } } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/ExplainParseElement.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/ExplainParseElement.java index b1f72e368806a..7867cdf62fdf9 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/ExplainParseElement.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/ExplainParseElement.java @@ -30,6 +30,10 @@ public class ExplainParseElement implements SearchParseElement { @Override public void parse(JsonParser jp, SearchContext context) throws Exception { - context.explain(jp.getCurrentToken() == JsonToken.VALUE_TRUE); + if (jp.getCurrentToken() == JsonToken.VALUE_NUMBER_INT) { + context.explain(jp.getIntValue() != 0); + } else { + context.explain(jp.getCurrentToken() == JsonToken.VALUE_TRUE); + } } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/query/SortParseElement.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/query/SortParseElement.java index f334f1216ab1f..2ca27569a5c2e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/query/SortParseElement.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/query/SortParseElement.java @@ -68,6 +68,10 @@ public SortParseElement() { while ((token = jp.nextToken()) != JsonToken.END_OBJECT) { if (token == JsonToken.FIELD_NAME) { innerJsonName = jp.getCurrentName(); + } else if (token == JsonToken.VALUE_NUMBER_INT) { + if ("reverse".equals(innerJsonName)) { + reverse = jp.getIntValue() != 0; + } } else if (token == JsonToken.VALUE_TRUE) { if ("reverse".equals(innerJsonName)) { reverse = true;