Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d63c130

Browse files
committed
es 6.3.2 support
1 parent 08f8a3a commit d63c130

File tree

4 files changed

+36
-4
lines changed

4 files changed

+36
-4
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ before_install:
1717
# update to java 8
1818
- sudo update-java-alternatives -s java-8-oracle
1919
- export JAVA_HOME=/usr/lib/jvm/java-8-oracle
20-
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.deb && sudo dpkg -i --force-confnew elasticsearch-6.3.1.deb
20+
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.deb && sudo dpkg -i --force-confnew elasticsearch-6.3.2.deb
2121
- sudo cp ./src/test/resources/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
2222
- sudo cat /etc/elasticsearch/elasticsearch.yml
2323
- sudo java -version

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>org.nlpcn</groupId>
55
<artifactId>elasticsearch-sql</artifactId>
6-
<version>6.3.1.1</version>
6+
<version>6.3.2.0</version>
77
<packaging>jar</packaging>
88
<description>Query elasticsearch using SQL</description>
99
<name>elasticsearch-sql</name>
@@ -45,7 +45,7 @@
4545
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4646
<runSuite>**/MainTestSuite.class</runSuite>
4747
<elasticsearch.plugin.name>sql</elasticsearch.plugin.name>
48-
<elasticsearch.version>6.3.1</elasticsearch.version>
48+
<elasticsearch.version>6.3.2</elasticsearch.version>
4949
<elasticsearch.plugin.classname>org.elasticsearch.plugin.nlpcn.SqlPlug</elasticsearch.plugin.classname>
5050
</properties>
5151

src/main/java/org/nlpcn/es4sql/domain/Paramer.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public class Paramer {
2828
public Float tieBreaker;
2929
public Operator operator;
3030

31+
public String default_field;
32+
3133
public static Paramer parseParamer(SQLMethodInvokeExpr method) throws SqlParseException {
3234
Paramer instance = new Paramer();
3335
List<SQLExpr> parameters = method.getParameters();
@@ -76,6 +78,11 @@ public static Paramer parseParamer(SQLMethodInvokeExpr method) throws SqlParseEx
7678
case "operator":
7779
instance.operator = Operator.fromString(Util.expr2Object(sqlExpr.getRight()).toString());
7880
break;
81+
82+
case "default_field":
83+
instance.default_field = Util.expr2Object(sqlExpr.getRight()).toString();
84+
break;
85+
7986
default:
8087
break;
8188
}
@@ -132,6 +139,10 @@ public static ToXContent fullParamer(QueryStringQueryBuilder query, Paramer para
132139
query.phraseSlop(paramer.slop);
133140
}
134141

142+
if (paramer.default_field != null) {
143+
query.defaultField(paramer.default_field);
144+
}
145+
135146
return query;
136147
}
137148

src/main/java/org/nlpcn/es4sql/query/maker/AggMaker.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,21 @@
66
import java.util.*;
77
import java.util.stream.Collectors;
88

9+
import com.fasterxml.jackson.core.JsonFactory;
10+
import org.elasticsearch.common.ParsingException;
911
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
1012
import org.elasticsearch.common.xcontent.NamedXContentRegistry;
1113
import org.elasticsearch.common.xcontent.XContentParser;
1214
import org.elasticsearch.common.xcontent.json.JsonXContent;
15+
import org.elasticsearch.common.xcontent.json.JsonXContentParser;
1316
import org.elasticsearch.join.aggregations.JoinAggregationBuilders;
1417
import org.elasticsearch.script.Script;
1518
import org.elasticsearch.script.ScriptType;
1619
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
1720
import org.elasticsearch.search.aggregations.AggregationBuilder;
1821
import org.elasticsearch.search.aggregations.AggregationBuilders;
1922
import org.elasticsearch.search.aggregations.BucketOrder;
23+
import org.elasticsearch.search.aggregations.InternalOrder;
2024
import org.elasticsearch.search.aggregations.bucket.geogrid.GeoGridAggregationBuilder;
2125

2226
import org.elasticsearch.search.aggregations.bucket.histogram.*;
@@ -289,7 +293,24 @@ private AggregationBuilder termsAgg(MethodField field) throws SqlParseException
289293
} else if ("desc".equalsIgnoreCase(value)) {
290294
terms.order(BucketOrder.key(false));
291295
} else {
292-
throw new SqlParseException("order can only support asc/desc " + kv.toString());
296+
List<BucketOrder> orderElements = new ArrayList<>();
297+
try (JsonXContentParser parser = new JsonXContentParser(NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, new JsonFactory().createParser(value))) {
298+
XContentParser.Token currentToken = parser.nextToken();
299+
if (currentToken == XContentParser.Token.START_OBJECT) {
300+
orderElements.add(InternalOrder.Parser.parseOrderParam(parser));
301+
} else if (currentToken == XContentParser.Token.START_ARRAY) {
302+
for (currentToken = parser.nextToken(); currentToken != XContentParser.Token.END_ARRAY; currentToken = parser.nextToken()) {
303+
if (currentToken == XContentParser.Token.START_OBJECT) {
304+
orderElements.add(InternalOrder.Parser.parseOrderParam(parser));
305+
} else {
306+
throw new ParsingException(parser.getTokenLocation(), "Invalid token in order array");
307+
}
308+
}
309+
}
310+
} catch (IOException e) {
311+
throw new SqlParseException("couldn't parse order: " + e.getMessage());
312+
}
313+
terms.order(orderElements);
293314
}
294315
break;
295316
case "alias":

0 commit comments

Comments
 (0)