Heim > Backend-Entwicklung > Golang > Point-in-Time-Request-API von Elasticsearch in Golang

Point-in-Time-Request-API von Elasticsearch in Golang

王林
Freigeben: 2024-02-13 15:39:21
nach vorne
908 Leute haben es durchsucht

Golang 中的 Elasticsearch 时间点请求 API

In Golang ist Elasticsearch eine sehr beliebte verteilte Such- und Analysemaschine. Es verfügt über leistungsstarke Funktionen und eine flexible Abfragesprache, um verschiedene Datenabrufanforderungen zu erfüllen. Unter anderem ist die Zeitpunktanforderungs-API eine wichtige Funktion von Elasticsearch, die es uns ermöglicht, Daten nach Zeitbereich abzurufen und zu aggregieren. In diesem Artikel stellt PHP-Redakteur Xinyi die Verwendung und Vorsichtsmaßnahmen der Elasticsearch-Zeitpunktanforderungs-API in Golang ausführlich vor, um den Lesern zu helfen, diese Funktion besser zu verstehen und anzuwenden.

Frageninhalt

Ich versuche, die Point-in-Time-API in Golang mithilfe der offiziellen go-elasticsearch-Bibliothek zu verwenden. Ich kann anscheinend keine Dokumentation finden, die erklärt, wie man es benutzt.

Ich konnte OpenPointInTime 对象并检索 PIT id。我不知道如何处理它或将其放置在 elasticsearch.Client.Search Positionen innerhalb einer Funktion erstellen. Ich kann auch kein Beispiel finden. Kann jemand anhand der offiziellen Bibliothek ein einfaches Beispiel geben?

Workaround

Nachdem ich die geschlossenen Issues im Github-Repository der Elasticsearch-Bibliothek durchsucht habe, habe ich diesen Issue-Thread gefunden: https://www.php.cn/link/4bdb6179647296e518bd72e62d3bf5c1

Laut diesem Thread muss ich die Pit-ID aus der openpointintime-Antwort abrufen und sie dem Text hinzufügen. Das hat bei mir funktioniert:

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),
)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPoint-in-Time-Request-API von Elasticsearch in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage