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

Skip to content

Commit 9126e8d

Browse files
authored
Merge pull request NLPchina#9 from NLPchina/master
Merge From NLPchina/elasticsearch-sql
2 parents 82505fc + 79dd361 commit 9126e8d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+678
-665
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-5.6.5.deb && sudo dpkg -i --force-confnew elasticsearch-5.6.5.deb
20+
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.deb && sudo dpkg -i --force-confnew elasticsearch-6.1.1.deb
2121
- sudo cp ./src/test/resources/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml
2222
- sudo cat /etc/elasticsearch/elasticsearch.yml
2323
- sudo java -version

README.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ Elasticsearch-SQL
5454
<br/>
5555
**5.6.4** [![5.6.4 Build Status](https://travis-ci.org/NLPchina/elasticsearch-sql.svg?branch=elastic5.6.4)](https://travis-ci.org/NLPchina/elasticsearch-sql)
5656
**5.6.5** [![5.6.5 Build Status](https://travis-ci.org/NLPchina/elasticsearch-sql.svg?branch=elastic5.6.5)](https://travis-ci.org/NLPchina/elasticsearch-sql)
57+
**6.0.0** [![6.0.0 Build Status](https://travis-ci.org/NLPchina/elasticsearch-sql.svg?branch=elastic6.0.0)](https://travis-ci.org/NLPchina/elasticsearch-sql)
58+
**6.0.1** [![6.0.1 Build Status](https://travis-ci.org/NLPchina/elasticsearch-sql.svg?branch=elastic6.0.1)](https://travis-ci.org/NLPchina/elasticsearch-sql)
59+
**6.1.0** [![6.1.0 Build Status](https://travis-ci.org/NLPchina/elasticsearch-sql.svg?branch=elastic6.1.0)](https://travis-ci.org/NLPchina/elasticsearch-sql)
60+
**6.1.1** [![6.1.1 Build Status](https://travis-ci.org/NLPchina/elasticsearch-sql.svg?branch=elastic6.1.1)](https://travis-ci.org/NLPchina/elasticsearch-sql)
5761

5862
Query elasticsearch using familiar SQL syntax.
5963
You can also use ES functions in SQL.
@@ -121,6 +125,10 @@ Versions
121125
| 5.6.3 | 5.6.3.0 | delete commands not supported | elastic5.6.3 |
122126
| 5.6.4 | 5.6.4.0 | delete commands not supported | elastic5.6.4 |
123127
| 5.6.5 | 5.6.5.0 | delete commands not supported | elastic5.6.5 |
128+
| 6.0.0 | 6.0.0.0 | | elastic6.0.0 |
129+
| 6.0.1 | 6.0.1.0 | | elastic6.0.1 |
130+
| 6.1.0 | 6.1.0.0 | | elastic6.1.0 |
131+
| 6.1.1 | 6.1.1.0 | | elastic6.1.1 |
124132

125133
### Elasticsearch 1.x
126134
````
@@ -325,6 +333,26 @@ Versions
325333
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.6.5.0/elasticsearch-sql-5.6.5.0.zip
326334
````
327335

336+
### Elasticsearch 6.0.0
337+
````
338+
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.0.0.0/elasticsearch-sql-6.0.0.0.zip
339+
````
340+
341+
### Elasticsearch 6.0.1
342+
````
343+
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.0.1.0/elasticsearch-sql-6.0.1.0.zip
344+
````
345+
346+
### Elasticsearch 6.1.0
347+
````
348+
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.0.0/elasticsearch-sql-6.1.0.0.zip
349+
````
350+
351+
### Elasticsearch 6.1.1
352+
````
353+
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/6.1.1.0/elasticsearch-sql-6.1.1.0.zip
354+
````
355+
328356
After doing this, you need to restart the Elasticsearch server. Otherwise you may get errors like `Invalid index name [sql], must not start with '']; ","status":400}`.
329357

330358
## Basic Usage
@@ -335,7 +363,7 @@ On elasticsearch 1.x / 2.x, visit the elasticsearch-sql web front-end:
335363
http://localhost:9200/_plugin/sql/
336364
````
337365

338-
On elasticsearch 5.x, [download and extract site](https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip).
366+
On elasticsearch 5.x/6.x, [download and extract site](https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip).
339367

340368
Then start the web front-end like this:
341369

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>5.6.5.0</version>
6+
<version>6.1.1.0</version>
77
<packaging>jar</packaging>
88
<description>Query elasticsearch using SQL</description>
99
<name>elasticsearch-sql</name>
@@ -47,7 +47,7 @@
4747
<elasticsearch.plugin.name>sql</elasticsearch.plugin.name>
4848
<elasticsearch.plugin.site>true</elasticsearch.plugin.site>
4949
<elasticsearch.plugin.jvm>true</elasticsearch.plugin.jvm>
50-
<elasticsearch.version>5.6.5</elasticsearch.version>
50+
<elasticsearch.version>6.1.1</elasticsearch.version>
5151
<elasticsearch.plugin.classname>org.elasticsearch.plugin.nlpcn.SqlPlug</elasticsearch.plugin.classname>
5252
</properties>
5353

src/main/java/com/alibaba/druid/pool/ElasticSearchConnection.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import org.elasticsearch.client.Client;
44
import org.elasticsearch.client.transport.TransportClient;
55
import org.elasticsearch.common.settings.Settings;
6-
import org.elasticsearch.common.transport.InetSocketTransportAddress;
6+
import org.elasticsearch.common.transport.TransportAddress;
77
import org.elasticsearch.transport.client.PreBuiltTransportClient;
88

99
import java.io.InputStream;
@@ -37,7 +37,7 @@ public ElasticSearchConnection(String jdbcUrl) {
3737
for (String hostAndPort : hostAndPortArray) {
3838
String host = hostAndPort.split(":")[0];
3939
String port = hostAndPort.split(":")[1];
40-
transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), Integer.parseInt(port)));
40+
transportClient.addTransportAddress(new TransportAddress(InetAddress.getByName(host), Integer.parseInt(port)));
4141
}
4242
client = transportClient;
4343
} catch (UnknownHostException e) {

src/main/java/org/elasticsearch/plugin/nlpcn/ElasticJoinExecutor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,10 @@ else if (requestBuilder instanceof NestedLoopsElasticRequestBuilder){
9090
}
9191

9292
protected void mergeSourceAndAddAliases(Map<String,Object> secondTableHitSource, SearchHit searchHit,String t1Alias,String t2Alias) {
93-
Map<String,Object> results = mapWithAliases(searchHit.getSource(), t1Alias);
93+
Map<String,Object> results = mapWithAliases(searchHit.getSourceAsMap(), t1Alias);
9494
results.putAll(mapWithAliases(secondTableHitSource, t2Alias));
95-
searchHit.getSource().clear();
96-
searchHit.getSource().putAll(results);
95+
searchHit.getSourceAsMap().clear();
96+
searchHit.getSourceAsMap().putAll(results);
9797
}
9898

9999
protected Map<String,Object> mapWithAliases(Map<String, Object> source, String alias) {

src/main/java/org/elasticsearch/plugin/nlpcn/MinusExecutor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import org.elasticsearch.action.search.SearchResponse;
44
import org.elasticsearch.client.Client;
5+
import org.elasticsearch.common.document.DocumentField;
56
import org.elasticsearch.common.text.Text;
67
import org.elasticsearch.common.unit.TimeValue;
78
import org.elasticsearch.search.SearchHit;
8-
import org.elasticsearch.search.SearchHitField;
99
import org.elasticsearch.search.SearchHits;
1010
import org.nlpcn.es4sql.Util;
1111
import org.nlpcn.es4sql.domain.Condition;
@@ -104,10 +104,10 @@ private void fillMinusHitsFromOneField(String fieldName, Set<Object> fieldValues
104104
List<SearchHit> minusHitsList = new ArrayList<>();
105105
int currentId = 1;
106106
for(Object result : fieldValues){
107-
Map<String,SearchHitField> fields = new HashMap<>();
107+
Map<String,DocumentField> fields = new HashMap<>();
108108
ArrayList<Object> values = new ArrayList<Object>();
109109
values.add(result);
110-
fields.put(fieldName,new SearchHitField(fieldName, values));
110+
fields.put(fieldName,new DocumentField(fieldName, values));
111111
SearchHit searchHit = new SearchHit(currentId,currentId+"", new Text(someHit.getType()), fields);
112112
searchHit.sourceRef(someHit.getSourceRef());
113113
searchHit.getSourceAsMap().clear();

src/main/java/org/elasticsearch/plugin/nlpcn/NestedLoopsElasticExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ private SearchHit getMergedHit(int currentCombinedResults, String t1Alias, Strin
119119
searchHit.getSourceAsMap().clear();
120120
searchHit.getSourceAsMap().putAll(hitFromFirstTable.getSourceAsMap());
121121

122-
mergeSourceAndAddAliases(matchedHit.getSource(), searchHit, t1Alias, t2Alias);
122+
mergeSourceAndAddAliases(matchedHit.getSourceAsMap(), searchHit, t1Alias, t2Alias);
123123
return searchHit;
124124
}
125125

src/main/java/org/elasticsearch/plugin/nlpcn/RestSqlAction.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,11 @@ public RestSqlAction(Settings settings, RestController restController) {
2727
restController.registerHandler(RestRequest.Method.GET, "/_sql", this);
2828
}
2929

30+
@Override
31+
public String getName() {
32+
return "sql_action";
33+
}
34+
3035
@Override
3136
protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException {
3237
String sql = request.param("sql");

src/main/java/org/elasticsearch/plugin/nlpcn/executors/CSVResultsExtractor.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
package org.elasticsearch.plugin.nlpcn.executors;
22

33
import com.google.common.base.Joiner;
4+
import org.elasticsearch.common.document.DocumentField;
45
import org.elasticsearch.search.SearchHit;
5-
import org.elasticsearch.search.SearchHitField;
66
import org.elasticsearch.search.SearchHits;
77
import org.elasticsearch.search.aggregations.Aggregation;
8-
import org.elasticsearch.search.aggregations.AggregationBuilder;
98
import org.elasticsearch.search.aggregations.Aggregations;
109
import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation;
1110
import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregation;
12-
import org.elasticsearch.search.aggregations.bucket.geogrid.GeoHashGrid;
13-
import org.elasticsearch.search.aggregations.metrics.MetricsAggregator;
1411
import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregation;
1512
import org.elasticsearch.search.aggregations.metrics.geobounds.GeoBounds;
16-
import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile;
1713
import org.elasticsearch.search.aggregations.metrics.percentiles.Percentiles;
18-
import org.elasticsearch.search.aggregations.metrics.scripted.ScriptedMetric;
1914
import org.elasticsearch.search.aggregations.metrics.stats.Stats;
2015
import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStats;
2116
import org.elasticsearch.search.aggregations.metrics.tophits.TopHits;
@@ -257,8 +252,8 @@ private List<String> createHeadersAndFillDocsMap(boolean flat, SearchHit[] hits,
257252
Set<String> csvHeaders = new HashSet<>();
258253
for(SearchHit hit : hits){
259254
Map<String, Object> doc = hit.getSourceAsMap();
260-
Map<String, SearchHitField> fields = hit.getFields();
261-
for(SearchHitField searchHitField : fields.values()){
255+
Map<String, DocumentField> fields = hit.getFields();
256+
for(DocumentField searchHitField : fields.values()){
262257
doc.put(searchHitField.getName(),searchHitField.getValue());
263258
}
264259
mergeHeaders(csvHeaders, doc, flat);

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
public class Condition extends Where {
2121

2222
public enum OPEAR {
23-
EQ, GT, LT, GTE, LTE, N, LIKE, NLIKE, IS, ISN, IN, NIN, BETWEEN, NBETWEEN, GEO_INTERSECTS, GEO_BOUNDING_BOX, GEO_DISTANCE, GEO_DISTANCE_RANGE, GEO_POLYGON, GEO_CELL, IN_TERMS, TERM, IDS_QUERY, NESTED_COMPLEX, CHILDREN_COMPLEX, SCRIPT,NIN_TERMS,NTERM;
23+
EQ, GT, LT, GTE, LTE, N, LIKE, NLIKE, IS, ISN, IN, NIN, BETWEEN, NBETWEEN, GEO_INTERSECTS, GEO_BOUNDING_BOX, GEO_DISTANCE, GEO_POLYGON, IN_TERMS, TERM, IDS_QUERY, NESTED_COMPLEX, CHILDREN_COMPLEX, SCRIPT,NIN_TERMS,NTERM;
2424

2525
public static Map<String, OPEAR> methodNameToOpear;
2626

@@ -185,15 +185,9 @@ public Condition(CONN conn, String name, SQLExpr nameExpr, String oper, Object v
185185
case "GEO_DISTANCE":
186186
this.opear = OPEAR.GEO_DISTANCE;
187187
break;
188-
case "GEO_DISTANCE_RANGE":
189-
this.opear = OPEAR.GEO_DISTANCE_RANGE;
190-
break;
191188
case "GEO_POLYGON":
192189
this.opear = OPEAR.GEO_POLYGON;
193190
break;
194-
case "GEO_CELL":
195-
this.opear = OPEAR.GEO_CELL;
196-
break;
197191
case "NESTED":
198192
this.opear = OPEAR.NESTED_COMPLEX;
199193
break;

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import java.util.Map.Entry;
99

1010
import org.elasticsearch.action.search.SearchResponse;
11+
import org.elasticsearch.common.document.DocumentField;
1112
import org.elasticsearch.search.SearchHit;
12-
import org.elasticsearch.search.SearchHitField;
1313
import org.elasticsearch.search.SearchHits;
1414
import org.elasticsearch.search.aggregations.Aggregation;
1515
import org.elasticsearch.search.aggregations.Aggregations;
@@ -37,10 +37,10 @@ public SearchResult(SearchResponse resp) {
3737
this.total = hits.getTotalHits();
3838
results = new ArrayList<>(hits.getHits().length);
3939
for (SearchHit searchHit : hits.getHits()) {
40-
if (searchHit.getSource() != null) {
41-
results.add(searchHit.getSource());
40+
if (searchHit.getSourceAsMap() != null) {
41+
results.add(searchHit.getSourceAsMap());
4242
} else if (searchHit.getFields() != null) {
43-
Map<String, SearchHitField> fields = searchHit.getFields();
43+
Map<String, DocumentField> fields = searchHit.getFields();
4444
results.add(toFieldsMap(fields));
4545
}
4646

@@ -81,9 +81,9 @@ public SearchResult(SearchResponse resp, Select select) throws SqlParseException
8181
* @param fields
8282
* @return
8383
*/
84-
private Map<String, Object> toFieldsMap(Map<String, SearchHitField> fields) {
84+
private Map<String, Object> toFieldsMap(Map<String, DocumentField> fields) {
8585
Map<String, Object> result = new HashMap<>();
86-
for (Entry<String, SearchHitField> entry : fields.entrySet()) {
86+
for (Entry<String, DocumentField> entry : fields.entrySet()) {
8787
if (entry.getValue().getValues().size() > 1) {
8888
result.put(entry.getKey(), entry.getValue().getValues());
8989
} else {

src/main/java/org/nlpcn/es4sql/jdbc/ObjectResultsExtractor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.nlpcn.es4sql.jdbc;
22

3+
import org.elasticsearch.common.document.DocumentField;
34
import org.elasticsearch.search.SearchHit;
4-
import org.elasticsearch.search.SearchHitField;
55
import org.elasticsearch.search.SearchHits;
66
import org.elasticsearch.search.aggregations.Aggregation;
77
import org.elasticsearch.search.aggregations.Aggregations;
@@ -247,8 +247,8 @@ private List<String> createHeadersAndFillDocsMap(boolean flat, SearchHit[] hits,
247247
Set<String> csvHeaders = new HashSet<>();
248248
for (SearchHit hit : hits) {
249249
Map<String, Object> doc = hit.getSourceAsMap();
250-
Map<String, SearchHitField> fields = hit.getFields();
251-
for (SearchHitField searchHitField : fields.values()) {
250+
Map<String, DocumentField> fields = hit.getFields();
251+
for (DocumentField searchHitField : fields.values()) {
252252
doc.put(searchHitField.getName(), searchHitField.getValue());
253253
}
254254
mergeHeaders(csvHeaders, doc, flat);

src/main/java/org/nlpcn/es4sql/parse/ScriptFilter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,6 @@ private void parseAndUpdateScriptType(String scriptType) {
8484
case "STORED":
8585
this.scriptType = ScriptType.STORED;
8686
break;
87-
case "FILE":
88-
this.scriptType = ScriptType.FILE;
89-
break;
9087
}
9188
}
9289

src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
1414
import org.elasticsearch.search.aggregations.AggregationBuilder;
1515
import org.elasticsearch.search.aggregations.AggregationBuilders;
16+
import org.elasticsearch.search.aggregations.BucketOrder;
1617
import org.elasticsearch.search.aggregations.bucket.nested.NestedAggregationBuilder;
1718
import org.elasticsearch.search.aggregations.bucket.nested.ReverseNestedAggregationBuilder;
1819
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
@@ -166,15 +167,15 @@ public SqlElasticSearchRequestBuilder explain() throws SqlParseException {
166167
TermsAggregationBuilder termsBuilder = (TermsAggregationBuilder) temp.value;
167168
switch (temp.key) {
168169
case "COUNT":
169-
termsBuilder.order(Terms.Order.count(isASC(order)));
170+
termsBuilder.order(BucketOrder.count(isASC(order)));
170171
break;
171172
case "KEY":
172-
termsBuilder.order(Terms.Order.term(isASC(order)));
173+
termsBuilder.order(BucketOrder.key(isASC(order)));
173174
// add the sort to the request also so the results get sorted as well
174175
request.addSort(order.getName(), SortOrder.valueOf(order.getType()));
175176
break;
176177
case "FIELD":
177-
termsBuilder.order(Terms.Order.aggregation(order.getName(), isASC(order)));
178+
termsBuilder.order(BucketOrder.aggregation(order.getName(), isASC(order)));
178179
break;
179180
default:
180181
throw new SqlParseException(order.getName() + " can not to order");

0 commit comments

Comments
 (0)