اتصال به دیتابیس ElasticSearch در برنامه‌های go


برای اتصال به دیتابیس ElasticSearch در برنامه‌های go، در ابتدا باید ماژول مربوط به آن را با اجرای دستور زیر، نصب کنید:

کپی
go get github.com/elastic/go-elasticsearch/v8

پس از آن، کافیست تا اطلاعات مربوط به دیتابیس خود را به متغیرهای محیطی برنامه خود، اضافه کنید؛ به عنوان مثال:

کپی
ELASTICSEARCH_URI=http://fitz-roy.liara.cloud:33492/
ELASTICSEARCH_USERNAME=elastic
ELASTICSEARCH_PASSWORD=uWrfTv0eW5ESQPYDxpX8EQWI

در نهایت، می‌توانید با استفاده از قطعه کد زیر، به دیتابیس خود، متصل شوید:

کپی
package main

import (
"context"
"fmt"
"log"
"os"

"github.com/elastic/go-elasticsearch/v8"
)

func main() {
// Get Elasticsearch configuration from environment variables
esURI := os.Getenv("ELASTICSEARCH_URI")
esUsername := os.Getenv("ELASTICSEARCH_USERNAME")
esPassword := os.Getenv("ELASTICSEARCH_PASSWORD")

if esURI == "" || esUsername == "" || esPassword == "" {
	log.Fatal("Environment variables ELASTICSEARCH_URI, ELASTICSEARCH_USERNAME, and ELASTICSEARCH_PASSWORD must be set")
}

// Define the Elasticsearch connection configuration
esConfig := elasticsearch.Config{
	Addresses: []string{
		esURI,
	},
	Username: esUsername,
	Password: esPassword,
}

// Create a new Elasticsearch client
es, err := elasticsearch.NewClient(esConfig)
if err != nil {
	log.Fatalf("Error creating the Elasticsearch client: %s", err)
}

// Test the connection
res, err := es.Info()
if err != nil {
	log.Fatalf("Error getting Elasticsearch info: %s", err)
}
defer res.Body.Close()

// Print the response
if res.IsError() {
	log.Fatalf("Elasticsearch returned an error: %s", res.String())
}

fmt.Println("Connected to Elasticsearch successfully!")
fmt.Println(res.String())
}