package es

import (
	"github.com/imroc/req"
	"math/rand"
	"search_server/pkg/config"
)

type Response struct {
	Took       int            `json:"took"`
	TimeOut    bool           `json:"time_out"`
	Shard      map[string]int `json:"_shard"`
	HitsResult HitsResult     `json:"hits"`
}

type HitsResult struct {
	Total    int     `json:"total"`
	MaxScore float64 `json:"max_score"`
	Hits     string  `json:"hits"`
}

func CurlES(index string, param string) (result string, err error) {
	endpoints := config.Get("es.urls").Strings(",")
	//随机获取一个节点进行请求
	esUrl := endpoints[rand.Intn(len(endpoints))]
	params := req.BodyJSON(param)
	resp, err := req.Get(esUrl+"/"+index+"/_search", params)
	if err != nil {
		return
	}
	result = resp.String()
	return
}