go-elasticsearch: github.com/elastic/go-elasticsearch Index | Examples | Files | Directories

package elasticsearch

import "github.com/elastic/go-elasticsearch"

Package elasticsearch provides a Go client for Elasticsearch.

Create the client with the NewDefaultClient function:

elasticsearch.NewDefaultClient()

The ELASTICSEARCH_URL environment variable is used instead of the default URL, when set. Use a comma to separate multiple URLs.

To configure the client, pass a Config object to the NewClient function:

cfg := elasticsearch.Config{
  Addresses: []string{
    "http://localhost:9200",
    "http://localhost:9201",
  },
  Username: "foo",
  Password: "bar",
  Transport: &http.Transport{
    MaxIdleConnsPerHost:   10,
    ResponseHeaderTimeout: time.Second,
    DialContext:           (&net.Dialer{Timeout: time.Second}).DialContext,
    TLSClientConfig: &tls.Config{
      MinVersion:         tls.VersionTLS11,
    },
  },
}

elasticsearch.NewClient(cfg)

When using the Elastic Service (https://elastic.co/cloud), you can use CloudID instead of Addresses.

See the elasticsearch_integration_test.go file and the _examples folder for more information.

Call the Elasticsearch APIs by invoking the corresponding methods on the client:

res, err := es.Info()
if err != nil {
  log.Fatalf("Error getting response: %s", err)
}

log.Println(res)

See the github.com/elastic/go-elasticsearch/esapi package for more information about using the API.

See the github.com/elastic/go-elasticsearch/estransport package for more information about configuring the transport.

Index

Examples

Package Files

doc.go elasticsearch.go

Constants

const Version = version.Client

Version returns the package version as a string.

type Client Uses

type Client struct {
    *esapi.API // Embeds the API methods
    Transport  estransport.Interface
}

Client represents the Elasticsearch client.

func NewClient Uses

func NewClient(cfg Config) (*Client, error)

NewClient creates a new client with configuration from cfg.

It will use http://localhost:9200 as the default address.

It will use the ELASTICSEARCH_URL environment variable, if set, to configure the addresses; use a comma to separate multiple URLs.

It's an error to set both cfg.Addresses and the ELASTICSEARCH_URL environment variable.

Code:

cfg := elasticsearch.Config{
    Addresses: []string{
        "http://localhost:9200",
    },
    Username: "foo",
    Password: "bar",
    Transport: &http.Transport{
        MaxIdleConnsPerHost:   10,
        ResponseHeaderTimeout: time.Second,
        DialContext:           (&net.Dialer{Timeout: time.Second}).DialContext,
        TLSClientConfig: &tls.Config{
            MinVersion: tls.VersionTLS11,
        },
    },
}

es, _ := elasticsearch.NewClient(cfg)
log.Print(es.Transport.(*estransport.Client).URLs())

Code:

// import "github.com/elastic/go-elasticsearch/v8/estransport"

// Use one of the bundled loggers:
//
// * estransport.TextLogger
// * estransport.ColorLogger
// * estransport.CurlLogger
// * estransport.JSONLogger

cfg := elasticsearch.Config{
    Logger: &estransport.ColorLogger{Output: os.Stdout},
}

elasticsearch.NewClient(cfg)

func NewDefaultClient Uses

func NewDefaultClient() (*Client, error)

NewDefaultClient creates a new client with default options.

It will use http://localhost:9200 as the default address.

It will use the ELASTICSEARCH_URL environment variable, if set, to configure the addresses; use a comma to separate multiple URLs.

Code:

es, err := elasticsearch.NewDefaultClient()
if err != nil {
    log.Fatalf("Error creating the client: %s\n", err)
}

res, err := es.Info()
if err != nil {
    log.Fatalf("Error getting the response: %s\n", err)
}
defer res.Body.Close()

log.Print(es.Transport.(*estransport.Client).URLs())

func (*Client) Perform Uses

func (c *Client) Perform(req *http.Request) (*http.Response, error)

Perform delegates to Transport to execute a request and return a response.

type Config Uses

type Config struct {
    Addresses []string // A list of Elasticsearch nodes to use.
    Username  string   // Username for HTTP Basic Authentication.
    Password  string   // Password for HTTP Basic Authentication.

    CloudID string // Endpoint for the Elastic Service (https://elastic.co/cloud).
    APIKey  string // Base64-encoded token for authorization; if set, overrides username and password.

    RetryOnStatus        []int // List of status codes for retry. Default: 502, 503, 504.
    DisableRetry         bool  // Default: false.
    EnableRetryOnTimeout bool  // Default: false.
    MaxRetries           int   // Default: 3.

    RetryBackoff func(attempt int) time.Duration // Optional backoff duration. Default: nil.

    Transport http.RoundTripper  // The HTTP transport object.
    Logger    estransport.Logger // The logger object.
}

Config represents the client configuration.

Directories

PathSynopsis
esapiPackage esapi provides the Go API for Elasticsearch.
estransportPackage estransport provides the transport layer for the Elasticsearch client.
esutilPackage esutil provides helper utilities to the Go client for Elasticsearch.
internal/version

Package elasticsearch imports 11 packages (graph) and is imported by 1 packages. Updated 2019-10-14. Refresh now. Tools for package owners.