Middle
Jak Elasticsearch był zasilany i aktualizowany?
sobes.tech AI
Odpowiedź od AI
Elasticsearch jest wypełniany i aktualizowany za pomocą operacji indeksowania i aktualizacji dokumentów. Zazwyczaj dane są wysyłane do Elasticsearch w formacie JSON przez API REST lub biblioteki klienckie.
Do wypełniania (indeksowania) używa się metody index lub bulk do ładowania wsadowego. Do aktualizacji można użyć metody update, która pozwala na częściową zmianę dokumentu lub ponowne indeksowanie całego dokumentu.
Przykład w Go z użyciem oficjalnego klienta elasticsearch-go:
import (
"context"
"encoding/json"
"fmt"
"strings"
"github.com/elastic/go-elasticsearch/v8"
)
type Document struct {
Title string `json:"title"`
Content string `json:"content"`
}
func main() {
es, _ := elasticsearch.NewDefaultClient()
doc := Document{Title: "Przykład", Content: "Tekst dokumentu"}
data, _ := json.Marshal(doc)
// Indeksowanie dokumentu
res, err := es.Index(
"my-index",
strings.NewReader(string(data)),
es.Index.WithDocumentID("1"),
es.Index.WithRefresh("true"),
)
if err != nil {
fmt.Println("Błąd indeksowania:", err)
}
defer res.Body.Close()
// Częściowa aktualizacja dokumentu
updateScript := `{"doc": {"content": "Zaktualizowany tekst"}}`
res, err = es.Update(
"my-index",
"1",
strings.NewReader(updateScript),
es.Update.WithRefresh("true"),
)
if err != nil {
fmt.Println("Błąd aktualizacji:", err)
}
defer res.Body.Close()
}
W ten sposób, wypełnianie i aktualizacja odbywa się poprzez indeksowanie nowych dokumentów i aktualizację istniejących za pomocą API Elasticsearch.