package ES7SqlUtil import ( "bytes" "context" "dsDataex/Utils/ConfigUtil" "encoding/json" es7 "github.com/elastic/go-elasticsearch/v7" "github.com/elastic/go-elasticsearch/v7/esapi" ) var ES7Client *es7.Client var ServerVersion string var CTX context.Context func init() { cfg := es7.Config{Addresses: ConfigUtil.ESAddress,} ES7Client, _ = es7.NewClient(cfg) CTX=context.Background() res, _ := ES7Client.Info() defer res.Body.Close() var result map[string]interface{} json.NewDecoder(res.Body).Decode(&result) ServerVersion=(result["version"].(map[string]interface{}))["number"].(string) } func SqlQueryJson(sql string) map[string]interface{} { query := map[string]interface{}{ "query": sql, } jsonBody, _ := json.Marshal(query) req := esapi.SQLQueryRequest{ Body: bytes.NewReader(jsonBody), Format: "json", } res, _ := req.Do(CTX, ES7Client) defer res.Body.Close() var result map[string]interface{} json.NewDecoder(res.Body).Decode(&result) return result } func SqlQueryTxt(sql string) string { query := map[string]interface{}{ "query": sql, } jsonBody, _ := json.Marshal(query) req := esapi.SQLQueryRequest{ Body: bytes.NewReader(jsonBody), Format: "txt", } res, _ := req.Do(CTX, ES7Client) defer res.Body.Close() var bts []byte res.Body.Read(bts) var result=string(bts) return result }