es功能开发,基本可用了

This commit is contained in:
暮光:城中城
2019-07-27 22:58:16 +08:00
parent 116e04e3bf
commit fadf52cec8
5 changed files with 129 additions and 59 deletions

View File

@@ -2,7 +2,9 @@ package com.zyplayer.doc.elasticsearch.controller;
import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.repository.manage.entity.EsDatasource;
import com.zyplayer.doc.data.service.elasticsearch.support.ElasticSearchUtil;
import com.zyplayer.doc.data.service.manage.EsDatasourceService;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.client.RequestOptions;
@@ -45,16 +47,19 @@ public class EsMappingController {
@Resource
ElasticSearchUtil elasticSearchUtil;
@Resource
EsDatasourceService esDatasourceService;
@PostMapping("/mappings")
public ResponseJson<Object> mappings(String index) throws IOException {
public ResponseJson<Object> mappings(Long id, String index) {
EsDatasource esDatasource = esDatasourceService.getById(id);
GetMappingsRequest request = new GetMappingsRequest();
request.setMasterTimeout(TimeValue.timeValueMinutes(1));
if (StringUtils.isNotBlank(index)) {
request.indices(index);
}
try {
RestHighLevelClient client = elasticSearchUtil.getEsClient("127.0.0.1:9200", "http");
RestHighLevelClient client = elasticSearchUtil.getEsClient(esDatasource.getHostPort(), esDatasource.getScheme());
GetMappingsResponse getMappingResponse = client.indices().getMapping(request, RequestOptions.DEFAULT);
Map<String, MappingMetaData> allMappings = getMappingResponse.mappings();
return DocResponseJson.ok(allMappings);
@@ -65,14 +70,15 @@ public class EsMappingController {
}
@PostMapping("/execute")
public ResponseJson<Object> execute(String index, String sql) throws IOException {
public ResponseJson<Object> execute(Long id, String index, String sql) {
EsDatasource esDatasource = esDatasourceService.getById(id);
SearchTemplateRequest request = new SearchTemplateRequest();
request.setRequest(new SearchRequest().indices(index));
request.setScriptType(ScriptType.INLINE);
request.setScript(sql);
request.setScriptParams(new HashMap<>());
try {
RestHighLevelClient client = elasticSearchUtil.getEsClient("127.0.0.1:9200", "http");
RestHighLevelClient client = elasticSearchUtil.getEsClient(esDatasource.getHostPort(), esDatasource.getScheme());
SearchTemplateResponse response = client.searchTemplate(request, RequestOptions.DEFAULT);
List<Map<String, Object>> resultList = new LinkedList<>();
for (SearchHit searchHit : response.getResponse().getHits()) {
@@ -85,11 +91,12 @@ public class EsMappingController {
}
@GetMapping("/index")
public ResponseJson<Object> index(String index) throws IOException {
public ResponseJson<Object> index(Long id, String index) throws IOException {
EsDatasource esDatasource = esDatasourceService.getById(id);
GetIndexRequest request = new GetIndexRequest(index);
request.setMasterTimeout(TimeValue.timeValueMinutes(1));
try {
RestHighLevelClient client = elasticSearchUtil.getEsClient("127.0.0.1:9200", "http");
RestHighLevelClient client = elasticSearchUtil.getEsClient(esDatasource.getHostPort(), esDatasource.getScheme());
GetIndexResponse indexResponse = client.indices().get(request, RequestOptions.DEFAULT);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("mapping", indexResponse.getMappings().get(index));