Sobes.tech
Middle

Hoe werd Elasticsearch gevuld en bijgewerkt?

sobes.tech AI

Antwoord van AI

Elasticsearch wordt gevuld en bijgewerkt via indexerings- en updatebewerkingen van documenten. Normaal worden gegevens in JSON-formaat naar Elasticsearch gestuurd via de REST API of clientbibliotheken.

Voor het vullen (indexeren) wordt de methode index of bulk gebruikt voor batchladen. Voor het bijwerken kan de methode update worden gebruikt, waarmee een document gedeeltelijk kan worden gewijzigd of het hele document opnieuw kan worden geïndexeerd.

Voorbeeld in Go met de officiële elasticsearch-go client:

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: "Voorbeeld", Content: "Tekst van het document"}
    data, _ := json.Marshal(doc)

    // Document indexeren
    res, err := es.Index(
        "my-index",
        strings.NewReader(string(data)),
        es.Index.WithDocumentID("1"),
        es.Index.WithRefresh("true"),
    )
    if err != nil {
        fmt.Println("Fout bij indexeren:", err)
    }
    defer res.Body.Close()

    // Gedeeltelijk bijwerken van document
    updateScript := `{"doc": {"content": "Bijgewerkte tekst"}}`
    res, err = es.Update(
        "my-index",
        "1",
        strings.NewReader(updateScript),
        es.Update.WithRefresh("true"),
    )
    if err != nil {
        fmt.Println("Fout bij bijwerken:", err)
    }
    defer res.Body.Close()
}

Op deze manier worden vullen en bijwerken gedaan door nieuwe documenten te indexeren en bestaande documenten bij te werken via de Elasticsearch API.