首頁 >後端開發 >Golang >Golang 中的 Elasticsearch 時間點請求 API

Golang 中的 Elasticsearch 時間點請求 API

王林
王林轉載
2024-02-13 15:39:21925瀏覽

Golang 中的 Elasticsearch 时间点请求 API

在Golang中,Elasticsearch是一個非常流行的分散式搜尋和分析引擎。它具有強大的功能和靈活的查詢語言,可以滿足各種資料檢索的需求。其中,時間點請求API是Elasticsearch的一個重要特性,它允許我們按照時間範圍進行資料檢索和聚合。在本文中,php小編新一將為大家詳細介紹Golang中的Elasticsearch時間點請求API的使用方法和注意事項,幫助讀者更能理解並應用這項功能。

問題內容

我正在嘗試使用官方 go-elasticsearch 庫在 golang 中使用時間點 api。我似乎找不到任何解釋如何使用它的文檔。

我已經能夠建立 OpenPointInTime 物件並檢索 PIT id。我不知道如何處理它或將其放置在 elasticsearch.Client.Search 函數中的位置。我也找不到例子。 誰能給出一個使用官方函式庫的基本範例。

解決方法

在瀏覽了elasticsearch庫的github儲存庫上的關閉問題後,我發現了這個問題線程:https://www.php.cn/ link/4bdb6179647296e518bd72e62d3bf5c1

#根據這個線程,我需要從 openpointintime 回應中獲取 pit id 並將其添加到正文中。 這對我有用:

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),
)

以上是Golang 中的 Elasticsearch 時間點請求 API的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除