Sobes.tech
Middle

Ինչպես էր լրացվում և թարմացվում Elasticsearch-ը։

sobes.tech AI

Պատասխան AI-ից

Elasticsearch-ը լցվում և թարմացվում է փաստաթղթերի ինդեքսավորման և թարմացման գործողությունների միջոցով: Սովորաբար, տվյալները JSON ձևաչափով ուղարկվում են Elasticsearch՝ REST API կամ հաճախորդային գրադարանների միջոցով:

Լցնում (ինդեքսավորում) համար օգտագործվում է index կամ bulk մեթոդը խմբային բեռնումների համար: Թարմացման համար կարելի է օգտագործել update մեթոդը, որը թույլ է տալիս մասամբ փոխել փաստաթուղթը կամ ամբողջ փաստաթուղթը կրկին ինդեքսավորել:

Օրինակ՝ Go լեզվով՝ օգտագործելով պաշտոնական 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: "Օրինակ", Content: "Փաստաթղթի տեքստ"}
    data, _ := json.Marshal(doc)

    // Փաստաթղթի ինդեքսավորումը
    res, err := es.Index(
        "my-index",
        strings.NewReader(string(data)),
        es.Index.WithDocumentID("1"),
        es.Index.WithRefresh("true"),
    )
    if err != nil {
        fmt.Println("Ինդեքսավորման սխալ:", err)
    }
    defer res.Body.Close()

    // Կիսամաքային թարմացում
    updateScript := `{"doc": {"content": "Թարմացված տեքստ"}}`
    res, err = es.Update(
        "my-index",
        "1",
        strings.NewReader(updateScript),
        es.Update.WithRefresh("true"),
    )
    if err != nil {
        fmt.Println("Թարմացման սխալ:", err)
    }
    defer res.Body.Close()
}

Այս կերպ, լցնում և թարմացնում է նոր փաստաթղթերի ինդեքսավորումը և առկա փաստաթղթերի թարմացումը Elasticsearch API-ի միջոցով: