Rumah > pembangunan bahagian belakang > Golang > pertanyaan golang

pertanyaan golang

王林
Lepaskan: 2023-05-19 10:23:37
asal
1167 orang telah melayarinya

Bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang digemari oleh pembangun sejak penubuhannya. Salah satu sebabnya ialah bahasa Go menyelesaikan masalah menulis aplikasi web berprestasi tinggi dengan sempurna. Pada masa yang sama, sebagai bahasa pengaturcaraan yang boleh dipercayai, cekap dan selamat, bahasa Go juga sangat baik dalam memproses sejumlah besar data. Dalam artikel ini, kami akan memperkenalkan cara membuat pertanyaan ES (Elasticsearch) menggunakan bahasa Go.

Apakah itu ES?

ES (Elasticsearch) ialah enjin carian sumber terbuka berdasarkan Lucene. Ia boleh menyimpan, mencari dan menganalisis sejumlah besar data dalam hampir masa nyata. ES ialah pangkalan data berorientasikan dokumen yang dinamik yang boleh menyokong permintaan carian yang kompleks dan menyokong analisis agregat masa nyata. ES mempunyai keupayaan carian teks penuh yang berkuasa terbina dalam dan menyokong operasi pertanyaan yang kompleks.

Mengapa menggunakan bahasa Go untuk membuat pertanyaan ES?

Terdapat banyak sebab mengapa bahasa Go digunakan bersama dengan ES. Pertama sekali, ES ialah enjin carian berprestasi tinggi, dan prestasi tinggi dan prestasi selaras bahasa Go juga sangat baik, jadi gabungan kedua-duanya boleh meningkatkan kecekapan pemprosesan dan carian data. Selain itu, API dan bahasa pertanyaan ES adalah sangat kompleks dan memerlukan jumlah masa pembelajaran tertentu, manakala sintaks bahasa Go adalah ringkas dan jelas, mudah dipelajari dan digunakan, menjadikannya lebih mudah untuk memproses data ES.

Langkah untuk membuat pertanyaan ES menggunakan bahasa Go:

1 Pasang bahasa Go dan ES

Mula-mula anda perlu memasang bahasa Go dan ES pada komputer anda dokumentasi rasmi Terdapat kaedah pemasangan terperinci. Selepas pemasangan selesai, kita boleh mula menggunakan bahasa Go untuk menanyakan ES.

2. Memperkenalkan pakej pergantungan

Banyak fungsi bahasa Go boleh dicapai dengan memperkenalkan pakej pergantungan. Untuk menanyakan ES, kami perlu memperkenalkan beberapa pakej pergantungan berkaitan ES terlebih dahulu. Sebagai contoh, kita boleh menggunakan pelanggan bahasa Go yang disediakan secara rasmi Elasticsearch (github.com/elastic/go-elasticsearch). Melalui pakej pergantungan ini, kami boleh menulis program bahasa Go dengan mudah untuk mengendalikan ES.

3. Tulis kod

Seterusnya, mari kita lihat cara menulis program bahasa Go untuk menanyakan ES. Pertama, kita perlu menyambung ke perkhidmatan ES. Ini boleh dicapai dengan kod berikut:

cfg := elasticsearch.Config{
  Addresses: []string{
    "http://localhost:9200",
  },
  Username: "user",
  Password: "pass",
}
es, err := elasticsearch.NewClient(cfg)
if err != nil {
  log.Fatalf("Error creating the client: %s", err)
}
Salin selepas log masuk

Dalam kod ini, kami menggunakan alamat ES, nama pengguna dan kata laluan untuk membuat sambungan klien ES. Pelanggan ES ialah contoh dalam program bahasa Go, yang boleh digunakan untuk melaksanakan pelbagai operasi pertanyaan.

Seterusnya, kita boleh menulis fungsi pertanyaan untuk mendapatkan data yang diperlukan. Dalam contoh ini, kami akan menanyakan semua dokumen dalam indeks ES yang ditentukan. Berikut ialah contoh kod untuk melaksanakan operasi pertanyaan ini:

res, err := es.Search(
  es.Search.WithIndex("my-index"),
  es.Search.WithBody(strings.NewReader(`{"query": {"match_all": {}}}`)),
  es.Search.WithTrackTotalHits(true),
  es.Search.WithPretty(),
)
if err != nil {
  log.Fatalf("Error getting response: %s", err)
}
defer res.Body.Close()

var r map[string]interface{}
if err := json.NewDecoder(res.Body).Decode(&r); err != nil {
  log.Fatalf("Error parsing the response body: %s", err)
}
fmt.Println(r)
Salin selepas log masuk

Dalam kod ini, kami menggunakan fungsi es.Search untuk melaksanakan operasi pertanyaan ES. Kita perlu menentukan indeks untuk ditanya, badan permintaan dan beberapa parameter lain. Sebagai contoh, kita boleh menggunakan fungsi WithTrackTotalHits untuk memberitahu ES supaya mengembalikan nombor semua dokumen yang sepadan. Gunakan fungsi WithPretty untuk mengeluarkan hasil pertanyaan dalam format yang boleh dibaca.

Akhir sekali, kita perlu menggunakan fungsi json.NewDecoder untuk menyahkod badan tindak balas kepada jenis peta. Peta ini mengandungi semua maklumat tentang hasil pertanyaan. Kami boleh memproses maklumat ini mengikut keperluan, seperti mengekstrak kandungan dokumen, mengira bilangan dokumen, dsb.

Ringkasan:

Bahasa Go ialah bahasa pengaturcaraan yang sangat berkuasa yang boleh digunakan untuk membangunkan aplikasi web berprestasi tinggi dan aplikasi pemprosesan data besar. ES ialah enjin carian berprestasi tinggi yang menyediakan carian teks penuh yang berkuasa dan keupayaan analisis agregat masa nyata. Gabungan kedua-duanya boleh memenuhi keperluan pembangun untuk memproses sejumlah besar data. Dalam artikel ini, kami memperkenalkan cara membuat pertanyaan ES menggunakan bahasa Go dan menyediakan kod sampel. Saya harap artikel ini akan membantu pembangun yang sedang mempelajari bahasa Go dan ES.

Atas ialah kandungan terperinci pertanyaan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan