Rumah  >  Artikel  >  pembangunan bahagian belakang  >  API permintaan titik-dalam-masa Elasticsearch di Golang

API permintaan titik-dalam-masa Elasticsearch di Golang

王林
王林ke hadapan
2024-02-13 15:39:21850semak imbas

Golang 中的 Elasticsearch 时间点请求 API

Di Golang, Elasticsearch ialah enjin carian dan analisis teragih yang sangat popular. Ia mempunyai fungsi yang berkuasa dan bahasa pertanyaan yang fleksibel untuk memenuhi pelbagai keperluan pengambilan data. Antaranya, API permintaan titik masa ialah ciri penting Elasticsearch, yang membolehkan kami mendapatkan dan mengagregat data mengikut julat masa. Dalam artikel ini, editor PHP Xinyi akan memperkenalkan secara terperinci penggunaan dan langkah berjaga-jaga API permintaan titik masa Elasticsearch di Golang untuk membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik.

Kandungan soalan

Saya cuba menggunakan api titik dalam masa dalam golang menggunakan perpustakaan go-elasticsearch rasmi. Saya tidak dapat mencari sebarang dokumentasi yang menerangkan cara menggunakannya.

Saya telah dapat mencipta OpenPointInTime 对象并检索 PIT id。我不知道如何处理它或将其放置在 elasticsearch.Client.Search kedudukan dalam fungsi. Saya juga tidak dapat mencari contoh. Bolehkah sesiapa memberi contoh asas menggunakan perpustakaan rasmi.

Penyelesaian

Selepas menyemak imbas isu tertutup pada repositori github perpustakaan elasticsearch, saya menjumpai utas isu ini: https://www.php.cn/link/4bdb6179647296e518bd72e62d3bf5c62d3bf5cn Menurut benang ini, saya perlu mendapatkan id pit daripada respons

dan menambahnya pada badan. Ini berkesan untuk saya:

var query_buffer bytes.Buffer
body := `
    {
        "query": {
            "term": {
                "_id": "AkUN7YUB2JzVdyKtJ8bD"
            }
        },
        "pit": {
            "id":  "your pit id here", 
            "keep_alive": "3m"  
        }
    }
`
es, _ := elasticsearch.NewDefaultClient()
json.NewDecoder(&query_buffer).Decode(&body)
res, err := es.Search(
    es.Search.WithAllowPartialSearchResults(true),
    es.Search.WithBody(&query_buffer),
)

Atas ialah kandungan terperinci API permintaan titik-dalam-masa Elasticsearch di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam