Documentation ¶
Index ¶
- type DoFunc
- type Doc
- type ElasticSearchRequest
- func Delete(url string, do DoFunc) *ElasticSearchRequest
- func DeleteDoc(index, id string, do DoFunc) *ElasticSearchRequest
- func NewElasticSearchRequest(url, method string, do DoFunc) *ElasticSearchRequest
- func NewElasticSearchRequestWithContext(ctx context.Context, url, method string, do DoFunc) *ElasticSearchRequest
- func Post(url string, do DoFunc) *ElasticSearchRequest
- func SQL(do DoFunc) *ElasticSearchRequest
- func Search(index string, do DoFunc) *ElasticSearchRequest
- func Update(index, id string, do DoFunc) *ElasticSearchRequest
- func (e *ElasticSearchRequest) Body(data any) *ElasticSearchRequest
- func (e *ElasticSearchRequest) Bytes() ([]byte, error)
- func (e *ElasticSearchRequest) DoRequst() (*http.Response, error)
- func (e *ElasticSearchRequest) JSONBody(a any) *ElasticSearchRequest
- func (e *ElasticSearchRequest) SQLBody(sql string) *ElasticSearchRequest
- func (e *ElasticSearchRequest) SearchAfterBody(query string, searchAfter []any) *ElasticSearchRequest
- func (e *ElasticSearchRequest) ToBytes() ([]byte, error)
- func (e *ElasticSearchRequest) ToCSV(a any) error
- func (e *ElasticSearchRequest) ToError() error
- func (e *ElasticSearchRequest) ToHits(a any) error
- func (e *ElasticSearchRequest) ToJSON(a any) error
- func (e *ElasticSearchRequest) UpdateBody(a any) *ElasticSearchRequest
- type Hit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Doc ¶
type Doc[Source, Aggregations any] struct { Took int64 `json:"token"` TimedOut bool `json:"timed_out"` Shards struct { Total int64 `json:"total"` Successful int64 `json:"successful"` Skipped int64 `json:"skipped"` Failed int64 `json:"failed"` } `json:"_shards"` Hits struct { Total struct { Value int64 `json:"value"` Relation string `json:"relation"` } `json:"total"` MaxScore float64 `json:"max_score"` Hits Hit[Source] `json:"hits"` } `json:"hits"` Aggregations Aggregations `json:"aggregations"` }
type ElasticSearchRequest ¶
type ElasticSearchRequest struct {
// contains filtered or unexported fields
}
ElasticSearchRequest 主要封装 ElasticSearch 调用方便使用 整个过程划分为三个阶段 1. 构造 ElasticSearch 请求 2. 发送 HTTP 请求,获取响应 3. 将响应信息已特定方式返回给使用者 为了方便调用者使用,在 1 阶段所有产生的错误先临时记录下来,在 2 阶段执行前再返回,这样能够让代码非常简洁
func Delete ¶
func Delete(url string, do DoFunc) *ElasticSearchRequest
func DeleteDoc ¶
func DeleteDoc(index, id string, do DoFunc) *ElasticSearchRequest
func NewElasticSearchRequest ¶
func NewElasticSearchRequest(url, method string, do DoFunc) *ElasticSearchRequest
NewElasticSearchRequest 构建 ElasticSearch 请求
func NewElasticSearchRequestWithContext ¶
func NewElasticSearchRequestWithContext(ctx context.Context, url, method string, do DoFunc) *ElasticSearchRequest
NewElasticSearchRequestWithContext 构建 ElasticSearch 请求,并支持用户传递 context
func SQL ¶
func SQL(do DoFunc) *ElasticSearchRequest
func (*ElasticSearchRequest) Body ¶
func (e *ElasticSearchRequest) Body(data any) *ElasticSearchRequest
Body 将 data 放入到 http.Request 中
func (*ElasticSearchRequest) Bytes ¶
func (e *ElasticSearchRequest) Bytes() ([]byte, error)
Bytes 发送请求并读取返回值
func (*ElasticSearchRequest) DoRequst ¶
func (e *ElasticSearchRequest) DoRequst() (*http.Response, error)
DoRequst 发送请求,目前这个还是依赖全局的 ElasticSearch 客户端
func (*ElasticSearchRequest) JSONBody ¶
func (e *ElasticSearchRequest) JSONBody(a any) *ElasticSearchRequest
JSONBody 传输的变量进行 json 序列化,并添加对应的 content type 对于 ElasticSearch 的场景中,很多请求体都是用户自己构建的,对于 string 类型就不进行 json 序列化了
func (*ElasticSearchRequest) SQLBody ¶
func (e *ElasticSearchRequest) SQLBody(sql string) *ElasticSearchRequest
func (*ElasticSearchRequest) SearchAfterBody ¶
func (e *ElasticSearchRequest) SearchAfterBody(query string, searchAfter []any) *ElasticSearchRequest
SearchAfterBody 在原有 query 中附加 search_after 字段,方便开发者使用 因为在 ElasticSearch 请求的内容 json 字段的顺序是有含义的,比如排序(如果一个对象中写多个的话就可能有问题),但是 golang 的 map json 序列化是无序的,从而会导致报错 为了避免出现语义错误,使用了有序 map 来解决这个问题,当然如果使用者感觉比较繁琐,可直接用 Search 即可
func (*ElasticSearchRequest) ToBytes ¶
func (e *ElasticSearchRequest) ToBytes() ([]byte, error)
ToBytes 返回正常请求返回的字节流
func (*ElasticSearchRequest) ToCSV ¶
func (e *ElasticSearchRequest) ToCSV(a any) error
func (*ElasticSearchRequest) ToError ¶
func (e *ElasticSearchRequest) ToError() error
ToError 发送请求并对于返回结果进行检查,若返回相关 ElasticSearch 的错误,也会报错
func (*ElasticSearchRequest) ToHits ¶
func (e *ElasticSearchRequest) ToHits(a any) error
ToHits 将返回的反序列化为 []Hit[T] 数组
func (*ElasticSearchRequest) ToJSON ¶
func (e *ElasticSearchRequest) ToJSON(a any) error
ToJSON 发送请求并将返回值反序列化为 any
func (*ElasticSearchRequest) UpdateBody ¶
func (e *ElasticSearchRequest) UpdateBody(a any) *ElasticSearchRequest
UpdateBody 给需要更新的结构体添加 doc 外壳