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-ի միջոցով: