V1 #1
|
@ -2,6 +2,7 @@ package elasticsearch
|
|||
|
||||
import "github.com/Selly-Modules/natsio"
|
||||
|
||||
// Config int client elasticsearch
|
||||
type Config struct {
|
||||
ApiKey string
|
||||
Nats natsio.Config
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package elasticsearch
|
||||
|
||||
const SubjectSyncData = "sync_data"
|
||||
const SubjectSearch = "search"
|
||||
const SubjectUpdateDocument = "update_document"
|
||||
const SubjectSyncData = "elasticsearch_sync_data"
|
||||
const SubjectSearch = "elasticsearch_search"
|
||||
const SubjectUpdateDocument = "elasticsearch_update_document"
|
||||
|
|
|
@ -8,12 +8,15 @@ import (
|
|||
"github.com/Selly-Modules/natsio"
|
||||
)
|
||||
|
||||
// Client ...
|
||||
type Client struct {
|
||||
Config Config
|
||||
natsServer natsio.Server
|
||||
natsJetStream natsio.JetStream
|
||||
}
|
||||
|
||||
// NewClient
|
||||
// Init client elasticsearch
|
||||
func NewClient(config Config) (*Client, error) {
|
||||
if config.ApiKey == "" {
|
||||
return nil, errors.New("api key is required")
|
||||
|
@ -34,6 +37,8 @@ func NewClient(config Config) (*Client, error) {
|
|||
return c, nil
|
||||
}
|
||||
|
||||
// SyncData
|
||||
// Sync data to services ES
|
||||
func (c *Client) SyncData(data SyncData) (bool, error) {
|
||||
var (
|
||||
res Response
|
||||
|
@ -51,6 +56,8 @@ func (c *Client) SyncData(data SyncData) (bool, error) {
|
|||
return res.Success, nil
|
||||
}
|
||||
|
||||
// Search
|
||||
// Request search to service es
|
||||
func (c *Client) Search(query ESQuery) ([]string, error) {
|
||||
var (
|
||||
res Response
|
||||
|
@ -68,6 +75,8 @@ func (c *Client) Search(query ESQuery) ([]string, error) {
|
|||
return res.Data, nil
|
||||
}
|
||||
|
||||
// UpdateDocument
|
||||
// Insert or update document to ES
|
||||
func (c *Client) UpdateDocument(query UpdateDataPayload) ([]string, error) {
|
||||
var (
|
||||
res Response
|
||||
|
|
14
struct.go
14
struct.go
|
@ -2,6 +2,8 @@ package elasticsearch
|
|||
|
||||
import "time"
|
||||
|
||||
// Response
|
||||
// response to service es
|
||||
type Response struct {
|
||||
Success bool `json:"success"`
|
||||
Data []string `json:"data,omitempty"`
|
||||
|
@ -11,16 +13,22 @@ type Response struct {
|
|||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
// SyncData
|
||||
// Payload for sync data to service es
|
||||
type SyncData struct {
|
||||
Index string
|
||||
Data []byte
|
||||
}
|
||||
|
||||
// UpdateDataPayload
|
||||
// Payload for insert or update document
|
||||
type UpdateDataPayload struct {
|
||||
Index string
|
||||
Body []byte
|
||||
}
|
||||
|
||||
// ESQuery
|
||||
// Query support to search document
|
||||
type ESQuery struct {
|
||||
Index string // Index
|
||||
Page int64
|
||||
|
@ -73,7 +81,11 @@ type ESQuery struct {
|
|||
Segments []string
|
||||
}
|
||||
|
||||
// ESSort
|
||||
// ES sort with field
|
||||
// ... filed is sort
|
||||
// ... ascending [true is asc] [false is desc]
|
||||
type ESSort struct {
|
||||
Filed string // Filed sort
|
||||
Field string // Filed sort
|
||||
Ascending bool
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue