cloudyelastic

package module
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Oct 12, 2023 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Count

func Count(es *elasticsearch.Client, index string) (string, error)

Query Elastic Search

func CreateIndex

func CreateIndex(client *elasticsearch.Client, indexName string) error

func First

func First(results string) ([]byte, error)

func GenerateIDQuery

func GenerateIDQuery(ids []string) string

GenerateIDQuery generates a query for all the ids

func Hits

func Hits(results string) int

func IDsFromResults

func IDsFromResults(results string) []string

GetIDsFromResults Gets a list of IDs from the elasic search results

func Index

func Index(client *elasticsearch.Client, item interface{}, ID string, indexName string) error

Index an item in the elastic search

func IndexData

func IndexData(client *elasticsearch.Client, data []byte, ID string, indexName string) error

Index an item in the elastic search

func IsError

func IsError(results string) bool

IsError determines if the results are an error

func LoadByID

func LoadByID(client *elasticsearch.Client, ID string, index string) ([]byte, error)

ElasticLoadByID Loads an item from Elastic Search

func NewClient

func NewClient(info *ConnectionInfo) (*elasticsearch.Client, error)

NewClient creates a new Client

func NewClientFromEnv

func NewClientFromEnv(env cloudy.Environment) (*elasticsearch.Client, error)

func ParseResults

func ParseResults(results string) ([][]byte, error)

ParseResults loads all the results as objects

func ParseResultsTyped

func ParseResultsTyped[T any](results string) ([]*T, error)

func Query

func Query(es *elasticsearch.Client, index string, query string) (string, error)

ElaticSearch basic elasic search

func RemoveData

func RemoveData(client *elasticsearch.Client, ID string, indexName string) error

func ToError

func ToError(results string) error

func ValueFromResults

func ValueFromResults(results string, name string) []string

Types

type BooleanCollector

type BooleanCollector struct {
	Must             *ConditionCollector
	MustNot          *ConditionCollector
	Should           *ConditionCollector
	MinShouldInclude int
	Filter           *ConditionCollector
}

func NewBooleanCollector

func NewBooleanCollector() *BooleanCollector

func (*BooleanCollector) Build

func (c *BooleanCollector) Build(parent *gabs.Container)

func (*BooleanCollector) Valid

func (c *BooleanCollector) Valid() bool

---------------

type Builder

type Builder interface {
	Build(parent *gabs.Container)
}

type ConditionCollector

type ConditionCollector struct {
	// contains filtered or unexported fields
}

func NewConditionCollector

func NewConditionCollector() *ConditionCollector

func (*ConditionCollector) Add

func (cc *ConditionCollector) Add(condition Builder)

func (*ConditionCollector) Build

func (cc *ConditionCollector) Build(parent *gabs.Container)

func (*ConditionCollector) BuildArray

func (cc *ConditionCollector) BuildArray() []*gabs.Container

func (*ConditionCollector) Exists

func (cc *ConditionCollector) Exists(field string)

func (*ConditionCollector) Match

func (cc *ConditionCollector) Match(field string, value string)

func (*ConditionCollector) MultiMatch

func (cc *ConditionCollector) MultiMatch(fields []string, query string, fuzziness string)

func (*ConditionCollector) Range

func (cc *ConditionCollector) Range(field string, gte string, lte string)

func (*ConditionCollector) RangeExt

func (cc *ConditionCollector) RangeExt(field string, gte string, lte string, gt string, lt string)

func (*ConditionCollector) Terms

func (cc *ConditionCollector) Terms(field string, values ...string)

func (*ConditionCollector) Valid

func (cc *ConditionCollector) Valid() bool

type ConnectionInfo

type ConnectionInfo struct {
	Endpoint string `json:"endpoint"`
	Username string `json:"username"`
	Password string `json:"password"`
}

ConnectionInfo connection information

type ESIndexer

type ESIndexer struct {
	IndexName    string
	Client       *elasticsearch.Client
	SkipIndexing bool
}

func NewIndexer

func NewIndexer(index string, skipIndexing bool) *ESIndexer

func (*ESIndexer) Close

func (es *ESIndexer) Close(ctx context.Context) error

func (*ESIndexer) Index

func (es *ESIndexer) Index(ctx context.Context, id string, data []byte) error

func (*ESIndexer) Open

func (es *ESIndexer) Open(ctx context.Context, config interface{}) error

func (*ESIndexer) Remove

func (es *ESIndexer) Remove(ctx context.Context, id string) error

func (*ESIndexer) Search

func (es *ESIndexer) Search(ctx context.Context, query interface{}) (interface{}, error)

type ElasticJsonDataStore

type ElasticJsonDataStore[T any] struct {
	Client *elasticsearch.Client
	Index  string
	Model  interface{}
}

func NewElasticJsonDataStore

func NewElasticJsonDataStore[T any](index string) *ElasticJsonDataStore[T]

func (*ElasticJsonDataStore[T]) Close

func (st *ElasticJsonDataStore[T]) Close(ctx context.Context) error

func (*ElasticJsonDataStore[T]) Delete

func (st *ElasticJsonDataStore[T]) Delete(ctx context.Context, key string) error

func (*ElasticJsonDataStore[T]) Exists

func (st *ElasticJsonDataStore[T]) Exists(ctx context.Context, key string) (bool, error)

func (*ElasticJsonDataStore[T]) Get

func (st *ElasticJsonDataStore[T]) Get(ctx context.Context, key string) (*T, error)

func (*ElasticJsonDataStore[T]) GetAll

func (st *ElasticJsonDataStore[T]) GetAll(ctx context.Context) ([]*T, error)

func (*ElasticJsonDataStore[T]) Open

func (st *ElasticJsonDataStore[T]) Open(ctx context.Context, config interface{}) error

func (*ElasticJsonDataStore[T]) Query

func (st *ElasticJsonDataStore[T]) Query(ctx context.Context, query *datastore.SimpleQuery) ([]*T, error)

func (*ElasticJsonDataStore[T]) Save

func (st *ElasticJsonDataStore[T]) Save(ctx context.Context, item *T, key string) error

Saves an item into the Elastic Search. This item MUST be JSON data. The key is used as the ID for the document and is required to be unique for this index

type ElasticMetricRecorder

type ElasticMetricRecorder struct {
	// contains filtered or unexported fields
}

func NewElasticMetricRecorder

func NewElasticMetricRecorder(ctx context.Context, conn *ConnectionInfo) (*ElasticMetricRecorder, error)

func NewElasticMetricRecorderFromEnv

func NewElasticMetricRecorderFromEnv(ctx context.Context, env *cloudy.Environment) (*ElasticMetricRecorder, error)

func (*ElasticMetricRecorder) RecordVMStatus

func (rec *ElasticMetricRecorder) RecordVMStatus(ctx context.Context, metric *metrics.Metric[*vm.VirtualMachineStatus]) error

type ElasticQueryConverter

type ElasticQueryConverter struct {
}

func (*ElasticQueryConverter) Convert

func (*ElasticQueryConverter) ConvertASort

func (*ElasticQueryConverter) ConvertCondition

func (qc *ElasticQueryConverter) ConvertCondition(c *datastore.SimpleQueryCondition, collector *ConditionCollector)

func (*ElasticQueryConverter) ConvertConditionGroup

func (qc *ElasticQueryConverter) ConvertConditionGroup(cg *datastore.SimpleQueryConditionGroup, bg *BooleanCollector)

func (*ElasticQueryConverter) ConvertSelect

func (*ElasticQueryConverter) ConvertSort

func (qc *ElasticQueryConverter) ConvertSort(sortbys []*datastore.SortBy, q *ElasticSearchQueryBuilder)

type ElasticSearchQueryBuilder

type ElasticSearchQueryBuilder struct {
	Size     int
	From     int
	Source   []string
	NoSource bool
	Sort     []*Sort
	Query    *QueryBuilder
}

func NewQuery

func NewQuery() *ElasticSearchQueryBuilder

func (*ElasticSearchQueryBuilder) AddSort

func (es *ElasticSearchQueryBuilder) AddSort(field string, direction string)

func (*ElasticSearchQueryBuilder) Build

func (es *ElasticSearchQueryBuilder) Build() string

func (*ElasticSearchQueryBuilder) BuildContainer

func (es *ElasticSearchQueryBuilder) BuildContainer() *gabs.Container

func (*ElasticSearchQueryBuilder) Print

func (es *ElasticSearchQueryBuilder) Print()

func (*ElasticSearchQueryBuilder) SetSort

func (es *ElasticSearchQueryBuilder) SetSort(field string, direction string)

type ExistsCondition

type ExistsCondition struct {
	Field string
}

func (*ExistsCondition) Build

func (m *ExistsCondition) Build(parent *gabs.Container)

type JsonPath

type JsonPath struct {
	Path string
	Type string
}

func Paths

func Paths(container *gabs.Container, start string, currentPath string) []*JsonPath

type MatchCondition

type MatchCondition struct {
	Field string
	Value string
}

func (*MatchCondition) Build

func (m *MatchCondition) Build(parent *gabs.Container)

type MultiMatchCondition

type MultiMatchCondition struct {
	Query     string
	Fields    []string
	Fuzziness string
}

func (*MultiMatchCondition) Build

func (m *MultiMatchCondition) Build(parent *gabs.Container)

type QueryBuilder

type QueryBuilder struct {
	Bool           *BooleanCollector
	MatchAll       bool
	MatchCondition *MatchCondition
	RangeCondition *RangeCondition
	Collector      *ConditionCollector
}

func NewQueryBuilder

func NewQueryBuilder() *QueryBuilder

func (*QueryBuilder) Build

func (qb *QueryBuilder) Build(parent *gabs.Container)

func (*QueryBuilder) Match

func (qb *QueryBuilder) Match(field string, value string)

func (*QueryBuilder) Range

func (qb *QueryBuilder) Range(field string, gte string, lte string)

func (*QueryBuilder) Valid

func (qb *QueryBuilder) Valid() bool

type RangeCondition

type RangeCondition struct {
	Field string
	Lte   string
	Gte   string
	Lt    string
	Gt    string
}

func (*RangeCondition) Build

func (c *RangeCondition) Build(parent *gabs.Container)

type Sort

type Sort struct {
	// contains filtered or unexported fields
}

type TermsCondition

type TermsCondition struct {
	Field  string
	Values []string
}

func (*TermsCondition) Build

func (m *TermsCondition) Build(parent *gabs.Container)

Jump to

Keyboard shortcuts

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