feat: dump from es with query, limit
This commit is contained in:
@ -1,7 +1,10 @@
|
||||
package interfaces
|
||||
|
||||
type DumpIO interface {
|
||||
Write(docs []map[string]any) (int, error)
|
||||
Read(int) ([]map[string]any, error)
|
||||
Write(docs []*ESSource) (int, error)
|
||||
Read(int) ([]*ESSource, error)
|
||||
Close() error
|
||||
|
||||
IsInput() bool
|
||||
IsFile() bool
|
||||
}
|
||||
|
19
internal/interfaces/enum.go
Normal file
19
internal/interfaces/enum.go
Normal file
@ -0,0 +1,19 @@
|
||||
package interfaces
|
||||
|
||||
type IO int64
|
||||
|
||||
const (
|
||||
IOInput IO = iota
|
||||
IOOutput
|
||||
)
|
||||
|
||||
func (io IO) Code() string {
|
||||
switch io {
|
||||
case IOInput:
|
||||
return "input"
|
||||
case IOOutput:
|
||||
return "output"
|
||||
default:
|
||||
return "unknown"
|
||||
}
|
||||
}
|
27
internal/interfaces/source.go
Normal file
27
internal/interfaces/source.go
Normal file
@ -0,0 +1,27 @@
|
||||
package interfaces
|
||||
|
||||
type ESSource struct {
|
||||
DocId string `json:"_id"`
|
||||
Index string `json:"_index"`
|
||||
Content map[string]any `json:"_source"`
|
||||
}
|
||||
|
||||
type ESResponse struct {
|
||||
ScrollId string `json:"_scroll_id"`
|
||||
Took int `json:"took"`
|
||||
TimedOut bool `json:"timed_out"`
|
||||
Shards struct {
|
||||
Total int `json:"total"`
|
||||
Successful int `json:"successful"`
|
||||
Skipped int `json:"skipped"`
|
||||
Failed int `json:"failed"`
|
||||
} `json:"_shards"`
|
||||
Hits struct {
|
||||
Total struct {
|
||||
Value int `json:"value"`
|
||||
Relation string `json:"relation"`
|
||||
} `json:"total"`
|
||||
MaxScore float64 `json:"max_score"`
|
||||
Hits []*ESSource `json:"hits"`
|
||||
} `json:"hits"`
|
||||
}
|
Reference in New Issue
Block a user