golang elastic search olivere 요약 중 하나(CRUD의 사용법)

7926 단어 Gogolang

golang elastic search olivere 요약 중 하나(CRUD의 사용법)


본고는 golang의elastic 검색 라이브러리(github.com/olivere/elastic/v7 기반 7 버전)를 소개하고elastic 검색과 대조하고자 합니다

사용 방법

  • golang elastic search olivere 총결산 중 하나(CRUD의 사용법)
  • 1.작성/업데이트
  • 2.색인 검색
  • 3.삭제

  • index를 es로 하고, type을 테스트로 하는 것을 예로 들다

    1. 만들기/업데이트


    (인덱스가 존재하면 업데이트, 존재하지 않으면 생성) ES:http://localhost:9200/:index/:type/option:id[post] (id 옵션)
    http://localhost:9200/es/test/1 [post]
    {
         
        "category":"language",
        "content":"golang"
    }
    

    Golang:
    var client *elastic.Client
    type Language struct {
         
    	Content string `json:"content"`
    }
    
    func Create(){
         
    	e1 := Language{
         Content:"golang"}
    	put1, err := client.Index().
    		Index("es").
    		Id("1").
    		BodyJson(e1).
    		Do(context.Background())
    	if err != nil {
         
    		panic(err)
    	}
    
    }
    
    

    2. 색인 검색


    ES: http://localhost:9200/:index/:type/:id [get]
    http://localhost:9200/es/test/1 [get]
    

    Golang:
    func Get(){
         
    	query, err := client.Get().Index("es").Id("1").Do(context.Background())
    	if err != nil {
         
    		panic(err)
    	}
    	if query.Found {
         
    		var result Language
    		err:=json.Unmarshal(query.Source,&result)
    		if err!=nil{
         
    			fmt.Println(err)
    		}
    		fmt.Println(result.Content)
    	}
    }	
    

    3. 삭제


    id가 "1"인 key ES 삭제:http://localhost:9200/:index/:type/:id [delete]
    http://localhost:9200/es/test/1 [delete]
    

    Golang:
    func Delete(){
         
    	client.Delete().Index("es").Id("1").Do(context.Background())
    }
    

    좋은 웹페이지 즐겨찾기