1
1
package io .github .iamazy .elasticsearch .dsl .plugin ;
2
2
3
3
import com .carrotsearch .hppc .cursors .ObjectObjectCursor ;
4
+ import com .google .common .util .concurrent .ThreadFactoryBuilder ;
4
5
import io .github .iamazy .elasticsearch .dsl .sql .exception .ElasticSql2DslException ;
5
6
import io .github .iamazy .elasticsearch .dsl .sql .model .ElasticSqlParseResult ;
6
7
import io .github .iamazy .elasticsearch .dsl .sql .parser .ElasticSql2DslParser ;
13
14
import org .elasticsearch .rest .*;
14
15
15
16
import java .io .IOException ;
17
+ import java .util .concurrent .*;
16
18
17
19
18
20
/**
@@ -30,14 +32,13 @@ public class RestSqlAction extends BaseRestHandler {
30
32
restController .registerHandler (RestRequest .Method .GET , "/_isql" , this );
31
33
}
32
34
33
-
34
35
@ Override
35
36
public String getName () {
36
37
return "isql" ;
37
38
}
38
39
39
40
@ Override
40
- protected RestChannelConsumer prepareRequest (RestRequest restRequest , NodeClient nodeClient ) throws IOException {
41
+ protected RestChannelConsumer prepareRequest (RestRequest restRequest , NodeClient nodeClient ) {
41
42
try (XContentParser parser = restRequest .contentOrSourceParamParser ()) {
42
43
parser .mapStrings ().forEach ((k , v ) -> restRequest .params ().putIfAbsent (k , v ));
43
44
} catch (IOException e ) {
@@ -54,9 +55,6 @@ protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient
54
55
if (restRequest .path ().endsWith ("/_explain" )) {
55
56
return channel -> channel .sendResponse (new BytesRestResponse (RestStatus .OK , builder .value (parseResult .toRequest ().source ())));
56
57
}
57
- else if (restRequest .path ().endsWith ("/_export" )){
58
- return null ;
59
- }
60
58
else {
61
59
if (parseResult .toFieldMapping () != null ) {
62
60
return channel -> channel .sendResponse (new BytesRestResponse (RestStatus .OK , builder .value (nodeClient .admin ().indices ().getFieldMappings (parseResult .toFieldMapping ()).actionGet ())));
@@ -70,8 +68,10 @@ else if(restRequest.path().endsWith("/_export")){
70
68
return channel -> channel .sendResponse (new BytesRestResponse (RestStatus .OK , builder .value (nodeClient .search (parseResult .toRequest ()).actionGet ())));
71
69
}
72
70
}
73
- } catch (ElasticSql2DslException e ) {
71
+ } catch (Exception e ) {
74
72
return channel -> channel .sendResponse (new BytesRestResponse (RestStatus .INTERNAL_SERVER_ERROR , XContentType .JSON .mediaType (), "{\" error\" :\" " + e .getMessage () + "\" }" ));
75
73
}
76
74
}
75
+
76
+
77
77
}
0 commit comments