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.
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?
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), )
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!