初始化驱动
This commit is contained in:
83
drivers/db/elasticsearch/elasticsearch.go
Normal file
83
drivers/db/elasticsearch/elasticsearch.go
Normal file
@@ -0,0 +1,83 @@
|
||||
package elasticsearch
|
||||
|
||||
import (
|
||||
"github.com/elastic/go-elasticsearch/v8"
|
||||
)
|
||||
|
||||
var (
|
||||
es *elasticsearch.TypedClient
|
||||
)
|
||||
|
||||
type elastic struct {
|
||||
client *elasticsearch.TypedClient
|
||||
}
|
||||
|
||||
//func (d *Driver) Insert(ctx context.Context, table string, data interface{}, batch ...int) (res sql.Result, err error) {
|
||||
//
|
||||
// return
|
||||
//}
|
||||
//
|
||||
//// createIndex 创建索引
|
||||
//func (d *Driver) CreateIndex(name string) {
|
||||
//
|
||||
// resp, err := d.client.Indices.
|
||||
// Create(name).
|
||||
// Do(context.Background())
|
||||
// if err != nil {
|
||||
// fmt.Printf("create index failed, err:%v\n", err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Printf("index:%#v\n", resp.Index)
|
||||
//}
|
||||
//
|
||||
//// indexDocument 索引文档
|
||||
//func (d *Driver) IndexDocument(name string, key string, data interface{}) {
|
||||
//
|
||||
// // 添加文档
|
||||
// resp, err := d.client.Index(name).
|
||||
// Id(key).
|
||||
// Document(data).
|
||||
// Do(context.Background())
|
||||
// if err != nil {
|
||||
// fmt.Printf("indexing document failed, err:%v\n", err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Printf("result:%#v\n", resp.Result)
|
||||
//}
|
||||
//
|
||||
//// getDocument 获取文档
|
||||
//func (d *Driver) GetDocument(name string, id string) (res json.RawMessage) {
|
||||
// resp, err := d.client.Get(name, id).
|
||||
// Do(context.Background())
|
||||
// if err != nil {
|
||||
// fmt.Printf("get document by id failed, err:%v\n", err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Printf("fileds:%d\n", resp.Source_)
|
||||
// res = resp.Source_
|
||||
// return
|
||||
//}
|
||||
//
|
||||
//// updateDocument 更新文档
|
||||
//func (d *Driver) UpdateDocument(name string, key string, data interface{}) {
|
||||
//
|
||||
// resp, err := d.client.Update(name, key).
|
||||
// Doc(data). // 使用结构体变量更新
|
||||
// Do(context.Background())
|
||||
// if err != nil {
|
||||
// fmt.Printf("update document failed, err:%v\n", err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Printf("result:%v\n", resp.Result)
|
||||
//}
|
||||
//
|
||||
//// deleteDocument 删除 document
|
||||
//func (d *Driver) DeleteDocument(name string, key string) {
|
||||
// resp, err := d.client.Delete(name, key).
|
||||
// Do(context.Background())
|
||||
// if err != nil {
|
||||
// fmt.Printf("delete document failed, err:%v\n", err)
|
||||
// return
|
||||
// }
|
||||
// fmt.Printf("result:%v\n", resp.Result)
|
||||
//}
|
||||
39
drivers/db/elasticsearch/es_open.go
Normal file
39
drivers/db/elasticsearch/es_open.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package elasticsearch
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"github.com/elastic/go-elasticsearch/v8"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/errors/gcode"
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
)
|
||||
|
||||
func (d *Driver) Open(config *gdb.ConfigNode) (db *sql.DB, err error) {
|
||||
var (
|
||||
source string
|
||||
underlyingDriverName = "elasticsearch"
|
||||
)
|
||||
source = config.Host
|
||||
|
||||
cfg := elasticsearch.Config{
|
||||
Addresses: []string{
|
||||
config.Host,
|
||||
},
|
||||
}
|
||||
|
||||
es, err = elasticsearch.NewTypedClient(cfg)
|
||||
//if err != nil {
|
||||
// fmt.Printf("elasticsearch.NewTypedClient failed, err:%v\n", err)
|
||||
// return
|
||||
//}
|
||||
|
||||
if db, err = sql.Open(underlyingDriverName, source); err != nil {
|
||||
err = gerror.WrapCodef(
|
||||
gcode.CodeDbOperationError, err,
|
||||
`sql.Open failed for driver "%s" by source "%s"`, underlyingDriverName, source,
|
||||
)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
47
drivers/db/elasticsearch/load.go
Normal file
47
drivers/db/elasticsearch/load.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package elasticsearch
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
// Driver is the driver for mysql database.
|
||||
type Driver struct {
|
||||
*gdb.Core
|
||||
}
|
||||
|
||||
const (
|
||||
quoteChar = "`"
|
||||
)
|
||||
|
||||
func init() {
|
||||
var (
|
||||
err error
|
||||
driverObj = New()
|
||||
driverNames = g.SliceStr{"es", "elasticsearch"}
|
||||
)
|
||||
for _, driverName := range driverNames {
|
||||
if err = gdb.Register(driverName, driverObj); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// New create and returns a driver that implements gdb.Driver, which supports operations for MySQL.
|
||||
func New() gdb.Driver {
|
||||
return &Driver{}
|
||||
}
|
||||
|
||||
// New creates and returns a database object for mysql.
|
||||
// It implements the interface of gdb.Driver for extra database driver installation.
|
||||
func (d *Driver) New(core *gdb.Core, node *gdb.ConfigNode) (res gdb.DB, err error) {
|
||||
res = &Driver{
|
||||
Core: core,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// GetChars returns the security char for this type of database.
|
||||
func (d *Driver) GetChars() (charLeft string, charRight string) {
|
||||
return quoteChar, quoteChar
|
||||
}
|
||||
53
drivers/db/found/found.go
Normal file
53
drivers/db/found/found.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package found
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
)
|
||||
|
||||
// Driver is the driver for mysql database.
|
||||
type Driver struct {
|
||||
*gdb.Core
|
||||
}
|
||||
|
||||
func (d *Driver) Open(config *gdb.ConfigNode) (*sql.DB, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
const (
|
||||
quoteChar = "`"
|
||||
)
|
||||
|
||||
func init() {
|
||||
var (
|
||||
err error
|
||||
driverObj = New()
|
||||
driverNames = g.SliceStr{"es", "found"}
|
||||
)
|
||||
for _, driverName := range driverNames {
|
||||
if err = gdb.Register(driverName, driverObj); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// New create and returns a driver that implements gdb.Driver, which supports operations for MySQL.
|
||||
func New() gdb.Driver {
|
||||
return &Driver{}
|
||||
}
|
||||
|
||||
// New creates and returns a database object for mysql.
|
||||
// It implements the interface of gdb.Driver for extra database driver installation.
|
||||
func (d *Driver) New(core *gdb.Core, node *gdb.ConfigNode) (res gdb.DB, err error) {
|
||||
res = &Driver{
|
||||
Core: core,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// GetChars returns the security char for this type of database.
|
||||
func (d *Driver) GetChars() (charLeft string, charRight string) {
|
||||
return quoteChar, quoteChar
|
||||
}
|
||||
Reference in New Issue
Block a user