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)

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 and examples.

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.

    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.
internal/version

Package elasticsearch imports 9 packages (graph). Updated 2019-04-17. Refresh now. Tools for package owners.