es

package
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DoFunc

type DoFunc func(*http.Request) (*http.Response, error)

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 Post

func Post(url string, do DoFunc) *ElasticSearchRequest

Post 快速构造一个 Post 请求

func SQL

func Search(index string, do DoFunc) *ElasticSearchRequest

Search 快速构造一个搜索请求

func Update

func Update(index, id string, do DoFunc) *ElasticSearchRequest

Update 快速构造一个更新请求

func (*ElasticSearchRequest) Body

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

JSONBody 传输的变量进行 json 序列化,并添加对应的 content type 对于 ElasticSearch 的场景中,很多请求体都是用户自己构建的,对于 string 类型就不进行 json 序列化了

func (*ElasticSearchRequest) SQLBody

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 外壳

type Hit

type Hit[T any] struct {
	Index  string  `json:"_index"`
	Type   string  `json:"_type"`
	ID     string  `json:"_id"`
	Score  float64 `json:"_score"`
	Source T       `json:"_source"`
	Sort   []any   `json:"sort"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL