elasticsql

package module
v0.0.0-...-334fac4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2024 License: MIT Imports: 9 Imported by: 0

README

elastic-sql-go使用类SQL查询、检索Elasticsearch、OpenSearch.

Thanks to antlr4/runtime/Go/antlr、olivere/elastic ...

1.basic use

sql :="select _id,nick,ctime from indexname"
elasticSQL:=ElasticSQL(sql,"")
elasticSQL.Init()
elasticSQL.Execute()
fmt.Println(common.JSONStr(elasticSQL.GetTheResultSet()))

2.multi-cluster support

在工程目录的conf文件夹下放置多个集群的配置文件

|--conf
  |--elastic-sql-rest-default.yml
  |--elastic-sql-rest-x.yml

代码中传入配置文件名即可(不是路径)

sql1:="select * from tablename"
elasticSQL:=ElasticSQL(sql) // 默认default配置文件
elasticSQL.Init()
elasticSQL.Execute()

// elastic-sql-rest-x.yml x根据集群集体情况定义
sql2:="select * from tablename*"
elasticSQL=ElasticSQL(sql, "elastic-sql-rest-x.yml") 
elasticSQL.Init()
elasticSQL.Execute()

3. 支持的语法

3.0 SQL基本结构

根据DSL的结构分为query部分、agg部分,通过|连接,可以有多个sql语句

select field,... from table1 
    where condition
    sort 
    limit
    export
|
metric group by field ...
|
select * from table2 where ... 

3.1 Query

基本的检索查询

  • term
  • terms
  • range
  • like
  • match
  • query_string
  • match_phrase
  • nested

todo

  • parent-child(join)

3.2 Aggregation

统计分析

// todo

3.3 导出文件

// todo

导出csv文件

select *,_id from index_name limit 10
export csv 'filename.txt'

导出json文件

select *,_id from index_name limit 10
export json 'filename.txt'

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ElasticSQL

func ElasticSQL(mySQL, confFileName string) (*basic.ExeElasticSQLCtx, error)

Types

type MyElasticVisitor

type MyElasticVisitor struct {
	parser.BaseElasticSQLVisitor
	Sql        string
	ElasticSQL *basic.ExeElasticSQLCtx
	// contains filtered or unexported fields
}

func NewMyElasticVisitor

func NewMyElasticVisitor(SQL string, elasticSQL *basic.ExeElasticSQLCtx) *MyElasticVisitor

func (*MyElasticVisitor) VisitAggStatement

func (v *MyElasticVisitor) VisitAggStatement(ctx *parser.AggStatementContext) interface{}

VisitAggStatement group by 部分解析

func (*MyElasticVisitor) VisitAnalysisStatement

func (v *MyElasticVisitor) VisitAnalysisStatement(ctx *parser.AnalysisStatementContext) interface{}

func (*MyElasticVisitor) VisitArrayValue

func (v *MyElasticVisitor) VisitArrayValue(ctx *parser.ArrayValueContext) interface{}

func (*MyElasticVisitor) VisitBtwCompare

func (v *MyElasticVisitor) VisitBtwCompare(ctx *parser.BtwCompareContext) interface{}

func (*MyElasticVisitor) VisitComparableExpression

func (v *MyElasticVisitor) VisitComparableExpression(ctx *parser.ComparableExpressionContext) interface{}

func (*MyElasticVisitor) VisitElasticSQL

func (v *MyElasticVisitor) VisitElasticSQL(ctx *parser.ElasticSQLContext) interface{}

func (*MyElasticVisitor) VisitExportStatement

func (v *MyElasticVisitor) VisitExportStatement(ctx *parser.ExportStatementContext) interface{}

func (*MyElasticVisitor) VisitFunctionalCompare

func (v *MyElasticVisitor) VisitFunctionalCompare(ctx *parser.FunctionalCompareContext) interface{}

func (*MyElasticVisitor) VisitIndexName

func (v *MyElasticVisitor) VisitIndexName(ctx *parser.IndexNameContext) interface{}

func (*MyElasticVisitor) VisitLogicalExpr

func (v *MyElasticVisitor) VisitLogicalExpr(ctx *parser.LogicalExprContext) interface{}

func (*MyElasticVisitor) VisitParam

func (v *MyElasticVisitor) VisitParam(ctx *parser.ParamContext) interface{}

func (*MyElasticVisitor) VisitParam2

func (v *MyElasticVisitor) VisitParam2(ctx *parser.Param2Context) interface{}

func (*MyElasticVisitor) VisitParamValues

func (v *MyElasticVisitor) VisitParamValues(ctx *parser.ParamValuesContext) interface{}

func (*MyElasticVisitor) VisitQueryStatement

func (v *MyElasticVisitor) VisitQueryStatement(ctx *parser.QueryStatementContext) interface{}

func (*MyElasticVisitor) VisitScriptPhrase

func (v *MyElasticVisitor) VisitScriptPhrase(ctx *parser.ScriptPhraseContext) interface{}

func (*MyElasticVisitor) VisitSortItem

func (v *MyElasticVisitor) VisitSortItem(ctx *parser.SortItemContext) interface{}

func (*MyElasticVisitor) VisitStatement

func (v *MyElasticVisitor) VisitStatement(tree antlr.ParseTree) interface{}

func (*MyElasticVisitor) VisitStr

func (v *MyElasticVisitor) VisitStr(ctx *parser.StrContext) interface{}

func (*MyElasticVisitor) VisitTermCompare

func (v *MyElasticVisitor) VisitTermCompare(ctx *parser.TermCompareContext) interface{}

func (*MyElasticVisitor) VisitWhereExpression

func (v *MyElasticVisitor) VisitWhereExpression(ctx *parser.WhereExpressionContext) interface{}

Directories

Path Synopsis
src
agg
basic
* Copyright 2020-present Doobetter.
* Copyright 2020-present Doobetter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL