elasticx

package
v0.0.54 Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultDocumentOptions = &documentOptions{
	refresh: refresh.False,
}

Functions

This section is empty.

Types

type BulkAction added in v0.0.27

type BulkAction string
const (
	BulkActionIndex  BulkAction = "index"
	BulkActionCreate BulkAction = "create"
	BulkActionUpdate BulkAction = "update"
	BulkActionDelete BulkAction = "delete"
)

type BulkOperation added in v0.0.27

type BulkOperation struct {
	IndexName  string
	Action     BulkAction
	DocumentID string
	Doc        interface{}
}

type Client

type Client interface {
	// Init makes sure that the elastic server or cluster is configured for clinia
	Init(ctx context.Context) error

	// Clean makes sure the the elastic server or cluster removes all clinia configuration
	Clean(ctx context.Context) error

	ClientEngines
}

Client provides access to a single Elastic server, or an entire cluster of Elastic servers.

func NewClient

func NewClient(config elasticsearch.Config) (Client, error)

NewClient creates a new Client based on the given config.

type ClientEngines

type ClientEngines interface {
	// Engine opens a connection to an exisiting engine.
	// If no engine with given name exists, a NotFoundError is returned.
	Engine(ctx context.Context, name string) (Engine, error)

	// EngineExists returns true if an engine with given name exists.
	EngineExists(ctx context.Context, name string) (bool, error)

	// Engines returns a list of all engines found by the client.
	Engines(ctx context.Context) ([]EngineInfo, error)

	// CreateEngine creates a new engine with given name and opens a connection to it.
	// If the a database with given name already exists, a DuplicateError is returned.
	CreateEngine(ctx context.Context, name string) (Engine, error)
}

ClientEngines provides access to the engines in a single elastic server, or an entire cluster of elastic servers.

type CreateIndexOptions

type CreateIndexOptions struct {
	Aliases  map[string]types.Alias
	Settings *types.IndexSettings
	Mappings *types.TypeMapping
}

CreateIndexOptions contains options that customize the creation of an index.

type DocumentMeta

type DocumentMeta struct {
	ID      string `json:"_id"`
	Index   string `json:"_index"`
	Version int64  `json:"_version"`
}

type DocumentOption added in v0.0.27

type DocumentOption func(*documentOptions)

func WithRefresh added in v0.0.27

func WithRefresh(refresh refresh.Refresh) DocumentOption

WithRefresh sets the refresh option of the document operation.

type Engine

type Engine interface {
	// Name returns the name of the engine.
	Name() string

	// Info fetches the information about the engine.
	Info(ctx context.Context) (*EngineInfo, error)

	// Remove removes the entire engine.
	// If the engine does not exists, a NotFoundError us returned
	Remove(ctx context.Context) error

	// Index functions
	EngineIndexes

	// Query performs a search request to Elastic Search
	Query(ctx context.Context, query *search.Request, indices ...string) (*search.Response, error)

	// Queries performs a multi search request to Elastic Search
	Queries(ctx context.Context, queries ...MultiQuery) (*msearch.Response, error)

	// Bulk performs a bulk request to Elastic Search
	Bulk(ctx context.Context, ops []BulkOperation) (*bulk.Response, error)
}

Engine provides access to all indexes in a single engine.

type EngineIndexes

type EngineIndexes interface {
	// Index opens a connection to an exisiting index within the engine.
	// If no index with given name exists, a NotFoundError is returned.
	Index(ctx context.Context, name string) (Index, error)

	// IndexExists returns true if an index with given name exists within the engine.
	IndexExists(ctx context.Context, name string) (bool, error)

	// Indexes returns a list of all indexes in the engine.
	Indexes(ctx context.Context) ([]IndexInfo, error)

	// CreateIndex creates a new index,
	// with given name, and opens a connection to it.
	CreateIndex(ctx context.Context, name string, options *CreateIndexOptions) (Index, error)
}

EngineIndexes provides access to all indexes in a single engine.

type EngineInfo

type EngineInfo struct {
	// The name of the engine.
	Name string `json:"name,omitempty"`
}

type Index

type Index interface {
	// Name returns the name of the index.
	Info() IndexInfo

	// Engine returns the engine containing the index.
	Engine() Engine

	// Remove removes the entire index.
	// If the index does not exists, a NotFoundError is returned.
	Remove(ctx context.Context) error

	// All document functions
	IndexDocuments
}

Index provides access to the information of an index.

type IndexDocuments

type IndexDocuments interface {
	// DocumentExists checks if a document with given id exists in the index.
	DocumentExists(ctx context.Context, id string) (bool, error)

	// ReadDocument reads a single document with given id from the index.
	// The document data is stored into result, the document metadata is returned.
	// If no document exists with given id, a NotFoundError is returned.
	ReadDocument(ctx context.Context, id string, result interface{}) (*DocumentMeta, error)

	// CreateDocument creates a single document in the index.
	// The document data is loaded from the given document, the document metadata is returned.
	// If the document data already contains a `_key` field, this will be used as key of the new document,
	// otherwise a unique key is created.
	CreateDocument(ctx context.Context, document interface{}, opts ...DocumentOption) (*DocumentMeta, error)

	// ReplaceDocument replaces a single document with given key in the collection with the document given in the document argument.
	// The document metadata is returned.
	// If no document exists with given key, a NotFoundError is returned.
	ReplaceDocument(ctx context.Context, key string, document interface{}, opts ...DocumentOption) (*DocumentMeta, error)

	// DeleteDocument deletes a single document with given key in the collection.
	// No error is returned when the document is successfully deleted.
	// If no document exists with given key, a NotFoundError is returned.
	DeleteDocument(ctx context.Context, key string, opts ...DocumentOption) error
}

type IndexInfo added in v0.0.27

type IndexInfo struct {
	Name string `json:"name"`
}

type IndexName added in v0.0.27

type IndexName string

func NewIndexName added in v0.0.27

func NewIndexName(elements ...string) IndexName

func (IndexName) Elements added in v0.0.27

func (i IndexName) Elements() []string

func (IndexName) EngineName added in v0.0.27

func (i IndexName) EngineName() string

func (IndexName) Name added in v0.0.27

func (i IndexName) Name() string

func (IndexName) String added in v0.0.27

func (i IndexName) String() string

type MultiQuery

type MultiQuery struct {
	IndexName string
	Request   types.MultisearchBody
}

Directories

Path Synopsis
Package migration allows to perform versioned migrations in your ArangoDB.
Package migration allows to perform versioned migrations in your ArangoDB.

Jump to

Keyboard shortcuts

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