summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/olivere
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2021-04-23 02:08:53 +0200
committerGitHub <noreply@github.com>2021-04-22 20:08:53 -0400
commit792b4dba2cc1b011e25f4a0c18fb648849cd885c (patch)
treefc5679ced43137a7b04ab1fb73dd2a4bd3ca9815 /vendor/github.com/olivere
parent834fc74873e8047552e9181e130bd53d8e890eb0 (diff)
downloadgitea-792b4dba2cc1b011e25f4a0c18fb648849cd885c.tar.gz
gitea-792b4dba2cc1b011e25f4a0c18fb648849cd885c.zip
[Vendor] Update directly used dependencys (#15593)
* update github.com/blevesearch/bleve v2.0.2 -> v2.0.3 * github.com/denisenkom/go-mssqldb v0.9.0 -> v0.10.0 * github.com/editorconfig/editorconfig-core-go v2.4.1 -> v2.4.2 * github.com/go-chi/cors v1.1.1 -> v1.2.0 * github.com/go-git/go-billy v5.0.0 -> v5.1.0 * github.com/go-git/go-git v5.2.0 -> v5.3.0 * github.com/go-ldap/ldap v3.2.4 -> v3.3.0 * github.com/go-redis/redis v8.6.0 -> v8.8.2 * github.com/go-sql-driver/mysql v1.5.0 -> v1.6.0 * github.com/go-swagger/go-swagger v0.26.1 -> v0.27.0 * github.com/lib/pq v1.9.0 -> v1.10.1 * github.com/mattn/go-sqlite3 v1.14.6 -> v1.14.7 * github.com/go-testfixtures/testfixtures v3.5.0 -> v3.6.0 * github.com/issue9/identicon v1.0.1 -> v1.2.0 * github.com/klauspost/compress v1.11.8 -> v1.12.1 * github.com/mgechev/revive v1.0.3 -> v1.0.6 * github.com/microcosm-cc/bluemonday v1.0.7 -> v1.0.8 * github.com/niklasfasching/go-org v1.4.0 -> v1.5.0 * github.com/olivere/elastic v7.0.22 -> v7.0.24 * github.com/pelletier/go-toml v1.8.1 -> v1.9.0 * github.com/prometheus/client_golang v1.9.0 -> v1.10.0 * github.com/xanzy/go-gitlab v0.44.0 -> v0.48.0 * github.com/yuin/goldmark v1.3.3 -> v1.3.5 * github.com/6543/go-version v1.2.4 -> v1.3.1 * do github.com/lib/pq v1.10.0 -> v1.10.1 again ...
Diffstat (limited to 'vendor/github.com/olivere')
-rw-r--r--vendor/github.com/olivere/elastic/v7/CONTRIBUTORS5
-rw-r--r--vendor/github.com/olivere/elastic/v7/README.md43
-rw-r--r--vendor/github.com/olivere/elastic/v7/bulk_create_request.go250
-rw-r--r--vendor/github.com/olivere/elastic/v7/bulk_create_request_easyjson.go302
-rw-r--r--vendor/github.com/olivere/elastic/v7/bulk_delete_request_easyjson.go2
-rw-r--r--vendor/github.com/olivere/elastic/v7/bulk_index_request.go2
-rw-r--r--vendor/github.com/olivere/elastic/v7/bulk_index_request_easyjson.go2
-rw-r--r--vendor/github.com/olivere/elastic/v7/bulk_update_request_easyjson.go4
-rw-r--r--vendor/github.com/olivere/elastic/v7/cat_fielddata.go211
-rw-r--r--vendor/github.com/olivere/elastic/v7/client.go50
-rw-r--r--vendor/github.com/olivere/elastic/v7/docker-compose.yml4
-rw-r--r--vendor/github.com/olivere/elastic/v7/go.mod9
-rw-r--r--vendor/github.com/olivere/elastic/v7/ping.go13
-rw-r--r--vendor/github.com/olivere/elastic/v7/pit.go36
-rw-r--r--vendor/github.com/olivere/elastic/v7/pit_close.go176
-rw-r--r--vendor/github.com/olivere/elastic/v7/pit_open.go247
-rw-r--r--vendor/github.com/olivere/elastic/v7/request.go2
-rw-r--r--vendor/github.com/olivere/elastic/v7/response.go10
-rw-r--r--vendor/github.com/olivere/elastic/v7/search.go10
-rw-r--r--vendor/github.com/olivere/elastic/v7/search_aggs.go15
-rw-r--r--vendor/github.com/olivere/elastic/v7/search_aggs_bucket_geotile_grid.go119
-rw-r--r--vendor/github.com/olivere/elastic/v7/search_queries_match_phrase.go22
-rw-r--r--vendor/github.com/olivere/elastic/v7/search_queries_wildcard.go29
-rw-r--r--vendor/github.com/olivere/elastic/v7/search_request.go7
-rw-r--r--vendor/github.com/olivere/elastic/v7/search_source.go17
-rw-r--r--vendor/github.com/olivere/elastic/v7/update_by_query.go10
-rw-r--r--vendor/github.com/olivere/elastic/v7/xpack_security_get_role.go2
-rw-r--r--vendor/github.com/olivere/elastic/v7/xpack_security_put_user.go5
28 files changed, 1536 insertions, 68 deletions
diff --git a/vendor/github.com/olivere/elastic/v7/CONTRIBUTORS b/vendor/github.com/olivere/elastic/v7/CONTRIBUTORS
index 8028e21f95..32912ebdd3 100644
--- a/vendor/github.com/olivere/elastic/v7/CONTRIBUTORS
+++ b/vendor/github.com/olivere/elastic/v7/CONTRIBUTORS
@@ -10,6 +10,7 @@
Aaron Tami [@aarontami](https://github.com/aarontami)
Adam Alix [@adamalix](https://github.com/adamalix)
Adam Weiner [@adamweiner](https://github.com/adamweiner)
+Adam Szaraniec [@mimol91](https://github.com/mimol91)
Adrian Lungu [@AdrianLungu](https://github.com/AdrianLungu)
alehano [@alehano](https://github.com/alehano)
Alejandro Carstens [@alejandro-carstens](https://github.com/alejandro-carstens)
@@ -66,6 +67,7 @@ David Emanuel Buchmann [@wuurrd](https://github.com/wuurrd)
Devin Christensen [@quixoten](https://github.com/quixoten)
diacone [@diacone](https://github.com/diacone)
Diego Becciolini [@itizir](https://github.com/itizir)
+Don Smith III [@cactauz](https://github.com/cactauz)
Dwayne Schultz [@myshkin5](https://github.com/myshkin5)
Elizabeth Jarrett [@mejarrett](https://github.com/mejarrett)
Elliot Williams [@elliotwms](https://github.com/elliotwms)
@@ -93,6 +95,7 @@ Haroldo Vélez [@Haroldov](https://github.com/Haroldov)
Harrison Wright [@wright8191](https://github.com/wright8191)
Henry Clifford [@hcliff](https://github.com/hcliff)
Henry Stern [@hstern](https://github.com/hstern)
+Herbert Lu [@lryong](https://github.com/lryong)
Igor Dubinskiy [@idubinskiy](https://github.com/idubinskiy)
initialcontext [@initialcontext](https://github.com/initialcontext)
Isaac Saldana [@isaldana](https://github.com/isaldana)
@@ -140,6 +143,7 @@ Martin Häger [@protomouse](https://github.com/protomouse)
Matt Braymer-Hayes [@mattayes](https://github.com/mattayes)
Medhi Bechina [@mdzor](https://github.com/mdzor)
Mike Beshai [@mbesh](https://github.com/mbesh)
+Mikhail Balabin [@mablabin](https://github.com/mbalabin)
mmfrb [@mmfrb](https://github.com/mmfrb)
mnpritula [@mnpritula](https://github.com/mnpritula)
mosa [@mosasiru](https://github.com/mosasiru)
@@ -164,6 +168,7 @@ Pete C [@peteclark-ft](https://github.com/peteclark-ft)
Peter Nagy [@nagypeterjob](https://github.com/nagypeterjob)
Paolo [@ppiccolo](https://github.com/ppiccolo)
Phillip Baker [@phillbaker](https://github.com/phillbaker)
+QilingZhao [@qilingzhao](https://github.com/qilingzhao)
Igor Panychek [@panychek](https://github.com/panychek)
Radoslaw Wesolowski [@r--w](https://github.com/r--w)
Rafał Gałus [@rgalus](https://github.com/rgalus)
diff --git a/vendor/github.com/olivere/elastic/v7/README.md b/vendor/github.com/olivere/elastic/v7/README.md
index 6e99fb73ea..ac43f557fa 100644
--- a/vendor/github.com/olivere/elastic/v7/README.md
+++ b/vendor/github.com/olivere/elastic/v7/README.md
@@ -178,59 +178,74 @@ Here are a few tips on how to get used to Elastic:
- Metrics Aggregations
- [x] Avg
+ - [ ] Boxplot (X-pack)
- [x] Cardinality
- [x] Extended Stats
- [x] Geo Bounds
- [x] Geo Centroid
+ - [x] Matrix stats
- [x] Max
+ - [x] Median absolute deviation
- [x] Min
- - [x] Percentiles
- [x] Percentile Ranks
+ - [x] Percentiles
+ - [ ] Rate (X-pack)
- [ ] Scripted Metric
- [x] Stats
+ - [ ] String stats (X-pack)
- [x] Sum
+ - [ ] T-test (X-pack)
- [x] Top Hits
+ - [ ] Top metrics (X-pack)
- [x] Value Count
+ - [x] Weighted avg
- Bucket Aggregations
- [x] Adjacency Matrix
- - [x] Children
- [x] Auto-interval Date Histogram
+ - [x] Children
+ - [x] Composite
- [x] Date Histogram
- [x] Date Range
- [x] Diversified Sampler
- [x] Filter
- [x] Filters
- [x] Geo Distance
- - [ ] GeoHash Grid
+ - [x] Geohash Grid
+ - [x] Geotile grid
- [x] Global
- [x] Histogram
- [x] IP Range
- [x] Missing
- [x] Nested
+ - [ ] Parent
- [x] Range
+ - [ ] Rare terms
- [x] Reverse Nested
- [x] Sampler
- [x] Significant Terms
- [x] Significant Text
- [x] Terms
- - [x] Composite
+ - [ ] Variable width histogram
- Pipeline Aggregations
- [x] Avg Bucket
+ - [x] Bucket Script
+ - [x] Bucket Selector
+ - [x] Bucket Sort
+ - [ ] Cumulative cardinality (X-pack)
+ - [x] Cumulative Sum
- [x] Derivative
+ - [ ] Extended Stats Bucket
+ - [ ] Inference bucket (X-pack)
- [x] Max Bucket
- [x] Min Bucket
- - [x] Sum Bucket
- - [x] Stats Bucket
- - [ ] Extended Stats Bucket
- - [x] Percentiles Bucket
- [x] Moving Average
- - [x] Cumulative Sum
- - [x] Bucket Script
- - [x] Bucket Selector
- - [x] Bucket Sort
+ - [x] Moving function
+ - [ ] Moving percentiles (X-pack)
+ - [ ] Normalize (X-pack)
+ - [x] Percentiles Bucket
- [x] Serial Differencing
-- [x] Matrix Aggregations
- - [x] Matrix Stats
+ - [x] Stats Bucket
+ - [x] Sum Bucket
- [x] Aggregation Metadata
### Indices APIs
diff --git a/vendor/github.com/olivere/elastic/v7/bulk_create_request.go b/vendor/github.com/olivere/elastic/v7/bulk_create_request.go
new file mode 100644
index 0000000000..3ad6ee9e5d
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/bulk_create_request.go
@@ -0,0 +1,250 @@
+// Copyright 2012-present Oliver Eilhard. All rights reserved.
+// Use of this source code is governed by a MIT-license.
+// See http://olivere.mit-license.org/license.txt for details.
+
+package elastic
+
+//go:generate easyjson bulk_create_request.go
+
+import (
+ "encoding/json"
+ "fmt"
+ "strings"
+)
+
+// BulkCreateRequest is a request to add a new document to Elasticsearch.
+//
+// See https://www.elastic.co/guide/en/elasticsearch/reference/7.0/docs-bulk.html
+// for details.
+type BulkCreateRequest struct {
+ BulkableRequest
+ index string
+ typ string
+ id string
+ opType string
+ routing string
+ parent string
+ version *int64 // default is MATCH_ANY
+ versionType string // default is "internal"
+ doc interface{}
+ pipeline string
+ retryOnConflict *int
+ ifSeqNo *int64
+ ifPrimaryTerm *int64
+
+ source []string
+
+ useEasyJSON bool
+}
+
+//easyjson:json
+type bulkCreateRequestCommand map[string]bulkCreateRequestCommandOp
+
+//easyjson:json
+type bulkCreateRequestCommandOp struct {
+ Index string `json:"_index,omitempty"`
+ Id string `json:"_id,omitempty"`
+ Type string `json:"_type,omitempty"`
+ Parent string `json:"parent,omitempty"`
+ // RetryOnConflict is "_retry_on_conflict" for 6.0 and "retry_on_conflict" for 6.1+.
+ RetryOnConflict *int `json:"retry_on_conflict,omitempty"`
+ Routing string `json:"routing,omitempty"`
+ Version *int64 `json:"version,omitempty"`
+ VersionType string `json:"version_type,omitempty"`
+ Pipeline string `json:"pipeline,omitempty"`
+ IfSeqNo *int64 `json:"if_seq_no,omitempty"`
+ IfPrimaryTerm *int64 `json:"if_primary_term,omitempty"`
+}
+
+// NewBulkCreateRequest returns a new BulkCreateRequest.
+// The operation type is "create" by default.
+func NewBulkCreateRequest() *BulkCreateRequest {
+ return &BulkCreateRequest{
+ opType: "create",
+ }
+}
+
+// UseEasyJSON is an experimental setting that enables serialization
+// with github.com/mailru/easyjson, which should in faster serialization
+// time and less allocations, but removed compatibility with encoding/json,
+// usage of unsafe etc. See https://github.com/mailru/easyjson#issues-notes-and-limitations
+// for details. This setting is disabled by default.
+func (r *BulkCreateRequest) UseEasyJSON(enable bool) *BulkCreateRequest {
+ r.useEasyJSON = enable
+ return r
+}
+
+// Index specifies the Elasticsearch index to use for this create request.
+// If unspecified, the index set on the BulkService will be used.
+func (r *BulkCreateRequest) Index(index string) *BulkCreateRequest {
+ r.index = index
+ r.source = nil
+ return r
+}
+
+// Type specifies the Elasticsearch type to use for this create request.
+// If unspecified, the type set on the BulkService will be used.
+func (r *BulkCreateRequest) Type(typ string) *BulkCreateRequest {
+ r.typ = typ
+ r.source = nil
+ return r
+}
+
+// Id specifies the identifier of the document to create.
+func (r *BulkCreateRequest) Id(id string) *BulkCreateRequest {
+ r.id = id
+ r.source = nil
+ return r
+}
+
+// Routing specifies a routing value for the request.
+func (r *BulkCreateRequest) Routing(routing string) *BulkCreateRequest {
+ r.routing = routing
+ r.source = nil
+ return r
+}
+
+// Parent specifies the identifier of the parent document (if available).
+func (r *BulkCreateRequest) Parent(parent string) *BulkCreateRequest {
+ r.parent = parent
+ r.source = nil
+ return r
+}
+
+// Version indicates the version of the document as part of an optimistic
+// concurrency model.
+func (r *BulkCreateRequest) Version(version int64) *BulkCreateRequest {
+ v := version
+ r.version = &v
+ r.source = nil
+ return r
+}
+
+// VersionType specifies how versions are created. It can be e.g. internal,
+// external, external_gte, or force.
+//
+// See https://www.elastic.co/guide/en/elasticsearch/reference/7.0/docs-index_.html#index-versioning
+// for details.
+func (r *BulkCreateRequest) VersionType(versionType string) *BulkCreateRequest {
+ r.versionType = versionType
+ r.source = nil
+ return r
+}
+
+// Doc specifies the document to create.
+func (r *BulkCreateRequest) Doc(doc interface{}) *BulkCreateRequest {
+ r.doc = doc
+ r.source = nil
+ return r
+}
+
+// RetryOnConflict specifies how often to retry in case of a version conflict.
+func (r *BulkCreateRequest) RetryOnConflict(retryOnConflict int) *BulkCreateRequest {
+ r.retryOnConflict = &retryOnConflict
+ r.source = nil
+ return r
+}
+
+// Pipeline to use while processing the request.
+func (r *BulkCreateRequest) Pipeline(pipeline string) *BulkCreateRequest {
+ r.pipeline = pipeline
+ r.source = nil
+ return r
+}
+
+// IfSeqNo indicates to only perform the create operation if the last
+// operation that has changed the document has the specified sequence number.
+func (r *BulkCreateRequest) IfSeqNo(ifSeqNo int64) *BulkCreateRequest {
+ r.ifSeqNo = &ifSeqNo
+ return r
+}
+
+// IfPrimaryTerm indicates to only perform the create operation if the
+// last operation that has changed the document has the specified primary term.
+func (r *BulkCreateRequest) IfPrimaryTerm(ifPrimaryTerm int64) *BulkCreateRequest {
+ r.ifPrimaryTerm = &ifPrimaryTerm
+ return r
+}
+
+// String returns the on-wire representation of the create request,
+// concatenated as a single string.
+func (r *BulkCreateRequest) String() string {
+ lines, err := r.Source()
+ if err != nil {
+ return fmt.Sprintf("error: %v", err)
+ }
+ return strings.Join(lines, "\n")
+}
+
+// Source returns the on-wire representation of the create request,
+// split into an action-and-meta-data line and an (optional) source line.
+// See https://www.elastic.co/guide/en/elasticsearch/reference/7.0/docs-bulk.html
+// for details.
+func (r *BulkCreateRequest) Source() ([]string, error) {
+ // { "create" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
+ // { "field1" : "value1" }
+
+ if r.source != nil {
+ return r.source, nil
+ }
+
+ lines := make([]string, 2)
+
+ // "index" ...
+ indexCommand := bulkCreateRequestCommandOp{
+ Index: r.index,
+ Type: r.typ,
+ Id: r.id,
+ Routing: r.routing,
+ Parent: r.parent,
+ Version: r.version,
+ VersionType: r.versionType,
+ RetryOnConflict: r.retryOnConflict,
+ Pipeline: r.pipeline,
+ IfSeqNo: r.ifSeqNo,
+ IfPrimaryTerm: r.ifPrimaryTerm,
+ }
+ command := bulkCreateRequestCommand{
+ r.opType: indexCommand,
+ }
+
+ var err error
+ var body []byte
+ if r.useEasyJSON {
+ // easyjson
+ body, err = command.MarshalJSON()
+ } else {
+ // encoding/json
+ body, err = json.Marshal(command)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ lines[0] = string(body)
+
+ // "field1" ...
+ if r.doc != nil {
+ switch t := r.doc.(type) {
+ default:
+ body, err := json.Marshal(r.doc)
+ if err != nil {
+ return nil, err
+ }
+ lines[1] = string(body)
+ case json.RawMessage:
+ lines[1] = string(t)
+ case *json.RawMessage:
+ lines[1] = string(*t)
+ case string:
+ lines[1] = t
+ case *string:
+ lines[1] = *t
+ }
+ } else {
+ lines[1] = "{}"
+ }
+
+ r.source = lines
+ return lines, nil
+}
diff --git a/vendor/github.com/olivere/elastic/v7/bulk_create_request_easyjson.go b/vendor/github.com/olivere/elastic/v7/bulk_create_request_easyjson.go
new file mode 100644
index 0000000000..ae44a85291
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/bulk_create_request_easyjson.go
@@ -0,0 +1,302 @@
+// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.
+
+package elastic
+
+import (
+ json "encoding/json"
+ easyjson "github.com/mailru/easyjson"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+// suppress unused package warning
+var (
+ _ *json.RawMessage
+ _ *jlexer.Lexer
+ _ *jwriter.Writer
+ _ easyjson.Marshaler
+)
+
+func easyjson29a8ef77DecodeGithubComOlivereElasticV7(in *jlexer.Lexer, out *bulkCreateRequestCommandOp) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "_index":
+ out.Index = string(in.String())
+ case "_id":
+ out.Id = string(in.String())
+ case "_type":
+ out.Type = string(in.String())
+ case "parent":
+ out.Parent = string(in.String())
+ case "retry_on_conflict":
+ if in.IsNull() {
+ in.Skip()
+ out.RetryOnConflict = nil
+ } else {
+ if out.RetryOnConflict == nil {
+ out.RetryOnConflict = new(int)
+ }
+ *out.RetryOnConflict = int(in.Int())
+ }
+ case "routing":
+ out.Routing = string(in.String())
+ case "version":
+ if in.IsNull() {
+ in.Skip()
+ out.Version = nil
+ } else {
+ if out.Version == nil {
+ out.Version = new(int64)
+ }
+ *out.Version = int64(in.Int64())
+ }
+ case "version_type":
+ out.VersionType = string(in.String())
+ case "pipeline":
+ out.Pipeline = string(in.String())
+ case "if_seq_no":
+ if in.IsNull() {
+ in.Skip()
+ out.IfSeqNo = nil
+ } else {
+ if out.IfSeqNo == nil {
+ out.IfSeqNo = new(int64)
+ }
+ *out.IfSeqNo = int64(in.Int64())
+ }
+ case "if_primary_term":
+ if in.IsNull() {
+ in.Skip()
+ out.IfPrimaryTerm = nil
+ } else {
+ if out.IfPrimaryTerm == nil {
+ out.IfPrimaryTerm = new(int64)
+ }
+ *out.IfPrimaryTerm = int64(in.Int64())
+ }
+ default:
+ in.SkipRecursive()
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+func easyjson29a8ef77EncodeGithubComOlivereElasticV7(out *jwriter.Writer, in bulkCreateRequestCommandOp) {
+ out.RawByte('{')
+ first := true
+ _ = first
+ if in.Index != "" {
+ const prefix string = ",\"_index\":"
+ first = false
+ out.RawString(prefix[1:])
+ out.String(string(in.Index))
+ }
+ if in.Id != "" {
+ const prefix string = ",\"_id\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.String(string(in.Id))
+ }
+ if in.Type != "" {
+ const prefix string = ",\"_type\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.String(string(in.Type))
+ }
+ if in.Parent != "" {
+ const prefix string = ",\"parent\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.String(string(in.Parent))
+ }
+ if in.RetryOnConflict != nil {
+ const prefix string = ",\"retry_on_conflict\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.Int(int(*in.RetryOnConflict))
+ }
+ if in.Routing != "" {
+ const prefix string = ",\"routing\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.String(string(in.Routing))
+ }
+ if in.Version != nil {
+ const prefix string = ",\"version\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.Int64(int64(*in.Version))
+ }
+ if in.VersionType != "" {
+ const prefix string = ",\"version_type\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.String(string(in.VersionType))
+ }
+ if in.Pipeline != "" {
+ const prefix string = ",\"pipeline\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.String(string(in.Pipeline))
+ }
+ if in.IfSeqNo != nil {
+ const prefix string = ",\"if_seq_no\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.Int64(int64(*in.IfSeqNo))
+ }
+ if in.IfPrimaryTerm != nil {
+ const prefix string = ",\"if_primary_term\":"
+ if first {
+ first = false
+ out.RawString(prefix[1:])
+ } else {
+ out.RawString(prefix)
+ }
+ out.Int64(int64(*in.IfPrimaryTerm))
+ }
+ out.RawByte('}')
+}
+
+// MarshalJSON supports json.Marshaler interface
+func (v bulkCreateRequestCommandOp) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ easyjson29a8ef77EncodeGithubComOlivereElasticV7(&w, v)
+ return w.Buffer.BuildBytes(), w.Error
+}
+
+// MarshalEasyJSON supports easyjson.Marshaler interface
+func (v bulkCreateRequestCommandOp) MarshalEasyJSON(w *jwriter.Writer) {
+ easyjson29a8ef77EncodeGithubComOlivereElasticV7(w, v)
+}
+
+// UnmarshalJSON supports json.Unmarshaler interface
+func (v *bulkCreateRequestCommandOp) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ easyjson29a8ef77DecodeGithubComOlivereElasticV7(&r, v)
+ return r.Error()
+}
+
+// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
+func (v *bulkCreateRequestCommandOp) UnmarshalEasyJSON(l *jlexer.Lexer) {
+ easyjson29a8ef77DecodeGithubComOlivereElasticV7(l, v)
+}
+func easyjson29a8ef77DecodeGithubComOlivereElasticV71(in *jlexer.Lexer, out *bulkCreateRequestCommand) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ in.Skip()
+ } else {
+ in.Delim('{')
+ *out = make(bulkCreateRequestCommand)
+ for !in.IsDelim('}') {
+ key := string(in.String())
+ in.WantColon()
+ var v1 bulkCreateRequestCommandOp
+ (v1).UnmarshalEasyJSON(in)
+ (*out)[key] = v1
+ in.WantComma()
+ }
+ in.Delim('}')
+ }
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+func easyjson29a8ef77EncodeGithubComOlivereElasticV71(out *jwriter.Writer, in bulkCreateRequestCommand) {
+ if in == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
+ out.RawString(`null`)
+ } else {
+ out.RawByte('{')
+ v2First := true
+ for v2Name, v2Value := range in {
+ if v2First {
+ v2First = false
+ } else {
+ out.RawByte(',')
+ }
+ out.String(string(v2Name))
+ out.RawByte(':')
+ (v2Value).MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+ }
+}
+
+// MarshalJSON supports json.Marshaler interface
+func (v bulkCreateRequestCommand) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ easyjson29a8ef77EncodeGithubComOlivereElasticV71(&w, v)
+ return w.Buffer.BuildBytes(), w.Error
+}
+
+// MarshalEasyJSON supports easyjson.Marshaler interface
+func (v bulkCreateRequestCommand) MarshalEasyJSON(w *jwriter.Writer) {
+ easyjson29a8ef77EncodeGithubComOlivereElasticV71(w, v)
+}
+
+// UnmarshalJSON supports json.Unmarshaler interface
+func (v *bulkCreateRequestCommand) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ easyjson29a8ef77DecodeGithubComOlivereElasticV71(&r, v)
+ return r.Error()
+}
+
+// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
+func (v *bulkCreateRequestCommand) UnmarshalEasyJSON(l *jlexer.Lexer) {
+ easyjson29a8ef77DecodeGithubComOlivereElasticV71(l, v)
+}
diff --git a/vendor/github.com/olivere/elastic/v7/bulk_delete_request_easyjson.go b/vendor/github.com/olivere/elastic/v7/bulk_delete_request_easyjson.go
index 084e5417e6..c2592a35f3 100644
--- a/vendor/github.com/olivere/elastic/v7/bulk_delete_request_easyjson.go
+++ b/vendor/github.com/olivere/elastic/v7/bulk_delete_request_easyjson.go
@@ -28,7 +28,7 @@ func easyjson8092efb6DecodeGithubComOlivereElasticV7(in *jlexer.Lexer, out *bulk
}
in.Delim('{')
for !in.IsDelim('}') {
- key := in.UnsafeString()
+ key := in.UnsafeFieldName(false)
in.WantColon()
if in.IsNull() {
in.Skip()
diff --git a/vendor/github.com/olivere/elastic/v7/bulk_index_request.go b/vendor/github.com/olivere/elastic/v7/bulk_index_request.go
index fcbc717330..c8a92cd259 100644
--- a/vendor/github.com/olivere/elastic/v7/bulk_index_request.go
+++ b/vendor/github.com/olivere/elastic/v7/bulk_index_request.go
@@ -12,7 +12,7 @@ import (
"strings"
)
-// BulkIndexRequest is a request to add a document to Elasticsearch.
+// BulkIndexRequest is a request to add or replace a document to Elasticsearch.
//
// See https://www.elastic.co/guide/en/elasticsearch/reference/7.0/docs-bulk.html
// for details.
diff --git a/vendor/github.com/olivere/elastic/v7/bulk_index_request_easyjson.go b/vendor/github.com/olivere/elastic/v7/bulk_index_request_easyjson.go
index aaae24e263..140ab8b573 100644
--- a/vendor/github.com/olivere/elastic/v7/bulk_index_request_easyjson.go
+++ b/vendor/github.com/olivere/elastic/v7/bulk_index_request_easyjson.go
@@ -28,7 +28,7 @@ func easyjson9de0fcbfDecodeGithubComOlivereElasticV7(in *jlexer.Lexer, out *bulk
}
in.Delim('{')
for !in.IsDelim('}') {
- key := in.UnsafeString()
+ key := in.UnsafeFieldName(false)
in.WantColon()
if in.IsNull() {
in.Skip()
diff --git a/vendor/github.com/olivere/elastic/v7/bulk_update_request_easyjson.go b/vendor/github.com/olivere/elastic/v7/bulk_update_request_easyjson.go
index 79d8db1676..75018f440a 100644
--- a/vendor/github.com/olivere/elastic/v7/bulk_update_request_easyjson.go
+++ b/vendor/github.com/olivere/elastic/v7/bulk_update_request_easyjson.go
@@ -28,7 +28,7 @@ func easyjson1ed00e60DecodeGithubComOlivereElasticV7(in *jlexer.Lexer, out *bulk
}
in.Delim('{')
for !in.IsDelim('}') {
- key := in.UnsafeString()
+ key := in.UnsafeFieldName(false)
in.WantColon()
if in.IsNull() {
in.Skip()
@@ -227,7 +227,7 @@ func easyjson1ed00e60DecodeGithubComOlivereElasticV71(in *jlexer.Lexer, out *bul
}
in.Delim('{')
for !in.IsDelim('}') {
- key := in.UnsafeString()
+ key := in.UnsafeFieldName(false)
in.WantColon()
if in.IsNull() {
in.Skip()
diff --git a/vendor/github.com/olivere/elastic/v7/cat_fielddata.go b/vendor/github.com/olivere/elastic/v7/cat_fielddata.go
new file mode 100644
index 0000000000..cd52fddd53
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/cat_fielddata.go
@@ -0,0 +1,211 @@
+// Copyright 2012-present Oliver Eilhard. All rights reserved.
+// Use of this source code is governed by a MIT-license.
+// See http://olivere.mit-license.org/license.txt for details.
+
+package elastic
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+ "net/url"
+ "strings"
+
+ "github.com/olivere/elastic/v7/uritemplates"
+)
+
+// CatFielddataService Returns the amount of heap memory currently used by
+// the field data cache on every data node in the cluster.
+//
+// See https://www.elastic.co/guide/en/elasticsearch/reference/7.12/cat-fielddata.html
+// for details.
+type CatFielddataService struct {
+ client *Client
+
+ pretty *bool // pretty format the returned JSON response
+ human *bool // return human readable values for statistics
+ errorTrace *bool // include the stack trace of returned errors
+ filterPath []string // list of filters used to reduce the response
+ headers http.Header // custom request-level HTTP headers
+
+ fields []string // list of fields used to limit returned information
+ bytes string // b, k, m, or g
+ columns []string
+ sort []string // list of columns for sort order
+}
+
+// NewCatFielddataService creates a new NewCatFielddataService.
+func NewCatFielddataService(client *Client) *CatFielddataService {
+ return &CatFielddataService{
+ client: client,
+ }
+}
+
+// Pretty tells Elasticsearch whether to return a formatted JSON response.
+func (s *CatFielddataService) Pretty(pretty bool) *CatFielddataService {
+ s.pretty = &pretty
+ return s
+}
+
+// Human specifies whether human readable values should be returned in
+// the JSON response, e.g. "7.5mb".
+func (s *CatFielddataService) Human(human bool) *CatFielddataService {
+ s.human = &human
+ return s
+}
+
+// ErrorTrace specifies whether to include the stack trace of returned errors.
+func (s *CatFielddataService) ErrorTrace(errorTrace bool) *CatFielddataService {
+ s.errorTrace = &errorTrace
+ return s
+}
+
+// FilterPath specifies a list of filters used to reduce the response.
+func (s *CatFielddataService) FilterPath(filterPath ...string) *CatFielddataService {
+ s.filterPath = filterPath
+ return s
+}
+
+// Header adds a header to the request.
+func (s *CatFielddataService) Header(name string, value string) *CatFielddataService {
+ if s.headers == nil {
+ s.headers = http.Header{}
+ }
+ s.headers.Add(name, value)
+ return s
+}
+
+// Headers specifies the headers of the request.
+func (s *CatFielddataService) Headers(headers http.Header) *CatFielddataService {
+ s.headers = headers
+ return s
+}
+
+// Fielddata specifies one or more node IDs to for information should be returned.
+func (s *CatFielddataService) Field(fields ...string) *CatFielddataService {
+ s.fields = fields
+ return s
+}
+
+// Bytes represents the unit in which to display byte values.
+// Valid values are: "b", "k", "m", or "g".
+func (s *CatFielddataService) Bytes(bytes string) *CatFielddataService {
+ s.bytes = bytes
+ return s
+}
+
+// Columns to return in the response.
+// To get a list of all possible columns to return, run the following command
+// in your terminal:
+//
+// Example:
+// curl 'http://localhost:9200/_cat/fielddata?help'
+//
+// You can use Columns("*") to return all possible columns. That might take
+// a little longer than the default set of columns.
+func (s *CatFielddataService) Columns(columns ...string) *CatFielddataService {
+ s.columns = columns
+ return s
+}
+
+// Sort is a list of fields to sort by.
+func (s *CatFielddataService) Sort(fields ...string) *CatFielddataService {
+ s.sort = fields
+ return s
+}
+
+func (s *CatFielddataService) buildURL() (string, url.Values, error) {
+ // Build URL
+ var (
+ path string
+ err error
+ )
+
+ if len(s.fields) > 0 {
+ path, err = uritemplates.Expand("/_cat/fielddata/{field}", map[string]string{
+ "field": strings.Join(s.fields, ","),
+ })
+ } else {
+ path = "/_cat/fielddata/"
+ }
+ if err != nil {
+ return "", url.Values{}, err
+ }
+
+ // Add query string parameters
+ params := url.Values{
+ "format": []string{"json"}, // always returns as JSON
+ }
+ if v := s.pretty; v != nil {
+ params.Set("pretty", fmt.Sprint(*v))
+ }
+ if v := s.human; v != nil {
+ params.Set("human", fmt.Sprint(*v))
+ }
+ if v := s.errorTrace; v != nil {
+ params.Set("error_trace", fmt.Sprint(*v))
+ }
+ if len(s.filterPath) > 0 {
+ params.Set("filter_path", strings.Join(s.filterPath, ","))
+ }
+ if s.bytes != "" {
+ params.Set("bytes", s.bytes)
+ }
+ if len(s.sort) > 0 {
+ params.Set("s", strings.Join(s.sort, ","))
+ }
+ if len(s.columns) > 0 {
+ params.Set("h", strings.Join(s.columns, ","))
+ }
+ return path, params, nil
+}
+
+// Do executes the operation.
+func (s *CatFielddataService) Do(ctx context.Context) (CatFielddataResponse, error) {
+ // Get URL for request
+ path, params, err := s.buildURL()
+ if err != nil {
+ return nil, err
+ }
+
+ // Get HTTP response
+ res, err := s.client.PerformRequest(ctx, PerformRequestOptions{
+ Method: "GET",
+ Path: path,
+ Params: params,
+ Headers: s.headers,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ // Return operation response
+ var ret CatFielddataResponse
+ if err := s.client.decoder.Decode(res.Body, &ret); err != nil {
+ return nil, err
+ }
+ return ret, nil
+}
+
+// -- Result of a get request.
+
+// CatFielddataResponse is the outcome of CatFielddataService.Do.
+type CatFielddataResponse []CatFielddataResponseRow
+
+// CatFielddataResponseRow is a single row in a CatFielddataResponse.
+// Notice that not all of these fields might be filled; that depends on
+// the number of columns chose in the request (see CatFielddataService.Columns).
+type CatFielddataResponseRow struct {
+ // Id represents the id of the fielddata.
+ Id string `json:"id"`
+ // Host represents the hostname of the fielddata.
+ Host string `json:"host"`
+ // IP represents the IP address of the fielddata.
+ IP string `json:"ip"`
+ // Node represents the Node name of the fielddata.
+ Node string `json:"node"`
+ // Field represents the name of the fielddata.
+ Field string `json:"field"`
+ // Size represents the size of the fielddata, e.g. "53.2gb".
+ Size string `json:"size"`
+}
diff --git a/vendor/github.com/olivere/elastic/v7/client.go b/vendor/github.com/olivere/elastic/v7/client.go
index 38a93faa3a..ad351a4632 100644
--- a/vendor/github.com/olivere/elastic/v7/client.go
+++ b/vendor/github.com/olivere/elastic/v7/client.go
@@ -14,6 +14,7 @@ import (
"net/http/httputil"
"net/url"
"os"
+ "runtime"
"strings"
"sync"
"time"
@@ -25,7 +26,7 @@ import (
const (
// Version is the current version of Elastic.
- Version = "7.0.22"
+ Version = "7.0.24"
// DefaultURL is the default endpoint of Elasticsearch on the local machine.
// It is used e.g. when initializing a new Client without a specific URL.
@@ -983,6 +984,10 @@ func (c *Client) sniffNode(ctx context.Context, url string) []*conn {
}
c.mu.RUnlock()
+ if req.Header.Get("User-Agent") == "" {
+ req.Header.Add("User-Agent", "elastic/"+Version+" ("+runtime.GOOS+"-"+runtime.GOARCH+")")
+ }
+
res, err := c.c.Do((*http.Request)(req).WithContext(ctx))
if err != nil {
return nodes
@@ -1126,6 +1131,9 @@ func (c *Client) healthcheck(parentCtx context.Context, timeout time.Duration, f
}
}
}
+ if req.Header.Get("User-Agent") == "" {
+ req.Header.Add("User-Agent", "elastic/"+Version+" ("+runtime.GOOS+"-"+runtime.GOARCH+")")
+ }
res, err := c.c.Do((*http.Request)(req).WithContext(ctx))
if res != nil {
status = res.StatusCode
@@ -1286,6 +1294,7 @@ type PerformRequestOptions struct {
RetryStatusCodes []int
Headers http.Header
MaxResponseSize int64
+ Stream bool
}
// PerformRequest does a HTTP request to Elasticsearch.
@@ -1294,6 +1303,9 @@ type PerformRequestOptions struct {
// Optionally, a list of HTTP error codes to ignore can be passed.
// This is necessary for services that expect e.g. HTTP status 404 as a
// valid outcome (Exists, IndicesExists, IndicesTypeExists).
+//
+// If Stream is set, the returned BodyReader field must be closed, even
+// if PerformRequest returns an error.
func (c *Client) PerformRequest(ctx context.Context, opt PerformRequestOptions) (*Response, error) {
start := time.Now().UTC()
@@ -1383,11 +1395,9 @@ func (c *Client) PerformRequest(ctx context.Context, opt PerformRequestOptions)
if opt.ContentType != "" {
req.Header.Set("Content-Type", opt.ContentType)
}
- if len(opt.Headers) > 0 {
- for key, value := range opt.Headers {
- for _, v := range value {
- req.Header.Add(key, v)
- }
+ for key, value := range opt.Headers {
+ for _, v := range value {
+ req.Header.Add(key, v)
}
}
if len(defaultHeaders) > 0 {
@@ -1397,6 +1407,9 @@ func (c *Client) PerformRequest(ctx context.Context, opt PerformRequestOptions)
}
}
}
+ if req.Header.Get("User-Agent") == "" {
+ req.Header.Set("User-Agent", "elastic/"+Version+" ("+runtime.GOOS+"-"+runtime.GOARCH+")")
+ }
// Set body
if opt.Body != nil {
@@ -1448,7 +1461,10 @@ func (c *Client) PerformRequest(ctx context.Context, opt PerformRequestOptions)
continue // try again
}
}
- defer res.Body.Close()
+
+ if !opt.Stream {
+ defer res.Body.Close()
+ }
// Tracing
c.dumpResponse(res)
@@ -1465,14 +1481,14 @@ func (c *Client) PerformRequest(ctx context.Context, opt PerformRequestOptions)
if err := checkResponse((*http.Request)(req), res, opt.IgnoreErrors...); err != nil {
// No retry if request succeeded
// We still try to return a response.
- resp, _ = c.newResponse(res, opt.MaxResponseSize)
+ resp, _ = c.newResponse(res, opt.MaxResponseSize, opt.Stream)
return resp, err
}
// We successfully made a request with this connection
conn.MarkAsHealthy()
- resp, err = c.newResponse(res, opt.MaxResponseSize)
+ resp, err = c.newResponse(res, opt.MaxResponseSize, opt.Stream)
if err != nil {
return nil, err
}
@@ -1620,6 +1636,16 @@ func (c *Client) ClearScroll(scrollIds ...string) *ClearScrollService {
return NewClearScrollService(c).ScrollId(scrollIds...)
}
+// OpenPointInTime opens a new Point in Time.
+func (c *Client) OpenPointInTime(indices ...string) *OpenPointInTimeService {
+ return NewOpenPointInTimeService(c).Index(indices...)
+}
+
+// ClosePointInTime closes an existing Point in Time.
+func (c *Client) ClosePointInTime(id string) *ClosePointInTimeService {
+ return NewClosePointInTimeService(c).ID(id)
+}
+
// -- Indices APIs --
// CreateIndex returns a service to create a new index.
@@ -1835,7 +1861,6 @@ func (c *Client) GetFieldMapping() *IndicesGetFieldMappingService {
// -- cat APIs --
-// TODO cat fielddata
// TODO cat master
// TODO cat nodes
// TODO cat pending tasks
@@ -1845,6 +1870,11 @@ func (c *Client) GetFieldMapping() *IndicesGetFieldMappingService {
// TODO cat shards
// TODO cat segments
+// CatFielddata returns information about the amount of heap memory currently used by the field data cache.
+func (c *Client) CatFielddata() *CatFielddataService {
+ return NewCatFielddataService(c)
+}
+
// CatAliases returns information about aliases.
func (c *Client) CatAliases() *CatAliasesService {
return NewCatAliasesService(c)
diff --git a/vendor/github.com/olivere/elastic/v7/docker-compose.yml b/vendor/github.com/olivere/elastic/v7/docker-compose.yml
index 1adc197d00..aca2553a6a 100644
--- a/vendor/github.com/olivere/elastic/v7/docker-compose.yml
+++ b/vendor/github.com/olivere/elastic/v7/docker-compose.yml
@@ -2,7 +2,7 @@ version: '3'
services:
elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.9.3
+ image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
hostname: elasticsearch
environment:
- cluster.name=elasticsearch
@@ -28,7 +28,7 @@ services:
ports:
- 9200:9200
platinum:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3
+ image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
hostname: elasticsearch-platinum
environment:
- cluster.name=platinum
diff --git a/vendor/github.com/olivere/elastic/v7/go.mod b/vendor/github.com/olivere/elastic/v7/go.mod
index 1aae642e74..00c6cc1af0 100644
--- a/vendor/github.com/olivere/elastic/v7/go.mod
+++ b/vendor/github.com/olivere/elastic/v7/go.mod
@@ -3,16 +3,15 @@ module github.com/olivere/elastic/v7
go 1.14
require (
- github.com/aws/aws-sdk-go v1.35.20
+ github.com/aws/aws-sdk-go v1.38.3
github.com/fortytw2/leaktest v1.3.0
github.com/go-sql-driver/mysql v1.5.0 // indirect
- github.com/google/go-cmp v0.5.2
- github.com/mailru/easyjson v0.7.6
+ github.com/google/go-cmp v0.5.5
+ github.com/mailru/easyjson v0.7.7
github.com/opentracing/opentracing-go v1.2.0
github.com/pkg/errors v0.9.1
github.com/smartystreets/assertions v1.1.1 // indirect
github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9
github.com/smartystreets/gunit v1.4.2 // indirect
- github.com/stretchr/testify v1.5.1 // indirect
- go.opencensus.io v0.22.5
+ go.opencensus.io v0.23.0
)
diff --git a/vendor/github.com/olivere/elastic/v7/ping.go b/vendor/github.com/olivere/elastic/v7/ping.go
index e069f9bb0a..456af5f8fd 100644
--- a/vendor/github.com/olivere/elastic/v7/ping.go
+++ b/vendor/github.com/olivere/elastic/v7/ping.go
@@ -10,6 +10,7 @@ import (
"fmt"
"net/http"
"net/url"
+ "runtime"
"strings"
)
@@ -160,11 +161,9 @@ func (s *PingService) Do(ctx context.Context) (*PingResult, int, error) {
if err != nil {
return nil, 0, err
}
- if len(s.headers) > 0 {
- for key, values := range s.headers {
- for _, v := range values {
- req.Header.Add(key, v)
- }
+ for key, values := range s.headers {
+ for _, v := range values {
+ req.Header.Add(key, v)
}
}
if len(defaultHeaders) > 0 {
@@ -179,6 +178,10 @@ func (s *PingService) Do(ctx context.Context) (*PingResult, int, error) {
req.SetBasicAuth(basicAuthUsername, basicAuthPassword)
}
+ if req.Header.Get("User-Agent") == "" {
+ req.Header.Add("User-Agent", "elastic/"+Version+" ("+runtime.GOOS+"-"+runtime.GOARCH+")")
+ }
+
res, err := s.client.c.Do((*http.Request)(req).WithContext(ctx))
if err != nil {
return nil, 0, err
diff --git a/vendor/github.com/olivere/elastic/v7/pit.go b/vendor/github.com/olivere/elastic/v7/pit.go
new file mode 100644
index 0000000000..22871309cc
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/pit.go
@@ -0,0 +1,36 @@
+// Copyright 2012-present Oliver Eilhard. All rights reserved.
+// Use of this source code is governed by a MIT-license.
+// See http://olivere.mit-license.org/license.txt for details.
+
+package elastic
+
+// PointInTime is a lightweight view into the state of the data that existed
+// when initiated. It can be created with OpenPointInTime API and be used
+// when searching, e.g. in Search API or with SearchSource.
+type PointInTime struct {
+ // Id that uniquely identifies the point in time, as created with the
+ // OpenPointInTime API.
+ Id string `json:"id,omitempty"`
+ // KeepAlive is the time for which this specific PointInTime will be
+ // kept alive by Elasticsearch.
+ KeepAlive string `json:"keep_alive,omitempty"`
+}
+
+// NewPointInTime creates a new PointInTime.
+func NewPointInTime(id, keepAlive string) *PointInTime {
+ return &PointInTime{
+ Id: id,
+ KeepAlive: keepAlive,
+ }
+}
+
+// Source generates the JSON serializable fragment for the PointInTime.
+func (pit *PointInTime) Source() (interface{}, error) {
+ if pit == nil {
+ return nil, nil
+ }
+ return map[string]interface{}{
+ "id": pit.Id,
+ "keep_alive": pit.KeepAlive,
+ }, nil
+}
diff --git a/vendor/github.com/olivere/elastic/v7/pit_close.go b/vendor/github.com/olivere/elastic/v7/pit_close.go
new file mode 100644
index 0000000000..86515a6058
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/pit_close.go
@@ -0,0 +1,176 @@
+// Copyright 2012-present Oliver Eilhard. All rights reserved.
+// Use of this source code is governed by a MIT-license.
+// See http://olivere.mit-license.org/license.txt for details.
+
+package elastic
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// ClosePointInTimeService removes a point in time.
+//
+// See https://www.elastic.co/guide/en/elasticsearch/reference/7.x/point-in-time-api.html
+// for details.
+type ClosePointInTimeService struct {
+ client *Client
+
+ pretty *bool // pretty format the returned JSON response
+ human *bool // return human readable values for statistics
+ errorTrace *bool // include the stack trace of returned errors
+ filterPath []string // list of filters used to reduce the response
+ headers http.Header // custom request-level HTTP headers
+
+ id string
+ bodyJson interface{}
+ bodyString string
+}
+
+// NewClosePointInTimeService creates a new ClosePointInTimeService.
+func NewClosePointInTimeService(client *Client) *ClosePointInTimeService {
+ return &ClosePointInTimeService{
+ client: client,
+ }
+}
+
+// Pretty tells Elasticsearch whether to return a formatted JSON response.
+func (s *ClosePointInTimeService) Pretty(pretty bool) *ClosePointInTimeService {
+ s.pretty = &pretty
+ return s
+}
+
+// Human specifies whether human readable values should be returned in
+// the JSON response, e.g. "7.5mb".
+func (s *ClosePointInTimeService) Human(human bool) *ClosePointInTimeService {
+ s.human = &human
+ return s
+}
+
+// ErrorTrace specifies whether to include the stack trace of returned errors.
+func (s *ClosePointInTimeService) ErrorTrace(errorTrace bool) *ClosePointInTimeService {
+ s.errorTrace = &errorTrace
+ return s
+}
+
+// FilterPath specifies a list of filters used to reduce the response.
+func (s *ClosePointInTimeService) FilterPath(filterPath ...string) *ClosePointInTimeService {
+ s.filterPath = filterPath
+ return s
+}
+
+// Header adds a header to the request.
+func (s *ClosePointInTimeService) Header(name string, value string) *ClosePointInTimeService {
+ if s.headers == nil {
+ s.headers = http.Header{}
+ }
+ s.headers.Add(name, value)
+ return s
+}
+
+// Headers specifies the headers of the request.
+func (s *ClosePointInTimeService) Headers(headers http.Header) *ClosePointInTimeService {
+ s.headers = headers
+ return s
+}
+
+// ID to close.
+func (s *ClosePointInTimeService) ID(id string) *ClosePointInTimeService {
+ s.id = id
+ return s
+}
+
+// BodyJson is the document as a serializable JSON interface.
+func (s *ClosePointInTimeService) BodyJson(body interface{}) *ClosePointInTimeService {
+ s.bodyJson = body
+ return s
+}
+
+// BodyString is the document encoded as a string.
+func (s *ClosePointInTimeService) BodyString(body string) *ClosePointInTimeService {
+ s.bodyString = body
+ return s
+}
+
+// buildURL builds the URL for the operation.
+func (s *ClosePointInTimeService) buildURL() (string, string, url.Values, error) {
+ var (
+ method = "DELETE"
+ path = "/_pit"
+ )
+
+ // Add query string parameters
+ params := url.Values{}
+ if v := s.pretty; v != nil {
+ params.Set("pretty", fmt.Sprint(*v))
+ }
+ if v := s.human; v != nil {
+ params.Set("human", fmt.Sprint(*v))
+ }
+ if v := s.errorTrace; v != nil {
+ params.Set("error_trace", fmt.Sprint(*v))
+ }
+ if len(s.filterPath) > 0 {
+ params.Set("filter_path", strings.Join(s.filterPath, ","))
+ }
+ return method, path, params, nil
+}
+
+// Validate checks if the operation is valid.
+func (s *ClosePointInTimeService) Validate() error {
+ return nil
+}
+
+// Do executes the operation.
+func (s *ClosePointInTimeService) Do(ctx context.Context) (*ClosePointInTimeResponse, error) {
+ // Check pre-conditions
+ if err := s.Validate(); err != nil {
+ return nil, err
+ }
+
+ // Get URL for request
+ method, path, params, err := s.buildURL()
+ if err != nil {
+ return nil, err
+ }
+
+ // Setup HTTP request body
+ var body interface{}
+ if s.id != "" {
+ body = map[string]interface{}{
+ "id": s.id,
+ }
+ } else if s.bodyJson != nil {
+ body = s.bodyJson
+ } else {
+ body = s.bodyString
+ }
+
+ // Get HTTP response
+ res, err := s.client.PerformRequest(ctx, PerformRequestOptions{
+ Method: method,
+ Path: path,
+ Params: params,
+ Body: body,
+ Headers: s.headers,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ // Return operation response
+ ret := new(ClosePointInTimeResponse)
+ if err := s.client.decoder.Decode(res.Body, ret); err != nil {
+ return nil, err
+ }
+ return ret, nil
+}
+
+// ClosePointInTimeResponse is the result of closing a point in time.
+type ClosePointInTimeResponse struct {
+ Succeeded bool `json:"succeeded,omitempty"`
+ NumFreed int `json:"num_freed,omitempty"`
+}
diff --git a/vendor/github.com/olivere/elastic/v7/pit_open.go b/vendor/github.com/olivere/elastic/v7/pit_open.go
new file mode 100644
index 0000000000..847a4d2372
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/pit_open.go
@@ -0,0 +1,247 @@
+// Copyright 2012-present Oliver Eilhard. All rights reserved.
+// Use of this source code is governed by a MIT-license.
+// See http://olivere.mit-license.org/license.txt for details.
+
+package elastic
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+ "net/url"
+ "strings"
+
+ "github.com/olivere/elastic/v7/uritemplates"
+)
+
+// OpenPointInTimeService opens a point in time that can be used in subsequent
+// searches.
+//
+// See https://www.elastic.co/guide/en/elasticsearch/reference/7.x/point-in-time-api.html
+// for details.
+type OpenPointInTimeService struct {
+ client *Client
+
+ pretty *bool // pretty format the returned JSON response
+ human *bool // return human readable values for statistics
+ errorTrace *bool // include the stack trace of returned errors
+ filterPath []string // list of filters used to reduce the response
+ headers http.Header // custom request-level HTTP headers
+
+ index []string
+ preference string
+ routing string
+ ignoreUnavailable *bool
+ expandWildcards string
+ keepAlive string
+ bodyJson interface{}
+ bodyString string
+}
+
+// NewOpenPointInTimeService creates a new OpenPointInTimeService.
+func NewOpenPointInTimeService(client *Client) *OpenPointInTimeService {
+ return &OpenPointInTimeService{
+ client: client,
+ }
+}
+
+// Pretty tells Elasticsearch whether to return a formatted JSON response.
+func (s *OpenPointInTimeService) Pretty(pretty bool) *OpenPointInTimeService {
+ s.pretty = &pretty
+ return s
+}
+
+// Human specifies whether human readable values should be returned in
+// the JSON response, e.g. "7.5mb".
+func (s *OpenPointInTimeService) Human(human bool) *OpenPointInTimeService {
+ s.human = &human
+ return s
+}
+
+// ErrorTrace specifies whether to include the stack trace of returned errors.
+func (s *OpenPointInTimeService) ErrorTrace(errorTrace bool) *OpenPointInTimeService {
+ s.errorTrace = &errorTrace
+ return s
+}
+
+// FilterPath specifies a list of filters used to reduce the response.
+func (s *OpenPointInTimeService) FilterPath(filterPath ...string) *OpenPointInTimeService {
+ s.filterPath = filterPath
+ return s
+}
+
+// Header adds a header to the request.
+func (s *OpenPointInTimeService) Header(name string, value string) *OpenPointInTimeService {
+ if s.headers == nil {
+ s.headers = http.Header{}
+ }
+ s.headers.Add(name, value)
+ return s
+}
+
+// Headers specifies the headers of the request.
+func (s *OpenPointInTimeService) Headers(headers http.Header) *OpenPointInTimeService {
+ s.headers = headers
+ return s
+}
+
+// Preference specifies the node or shard the operation should be performed on.
+func (s *OpenPointInTimeService) Preference(preference string) *OpenPointInTimeService {
+ s.preference = preference
+ return s
+}
+
+// Index is the name of the index (or indices).
+func (s *OpenPointInTimeService) Index(index ...string) *OpenPointInTimeService {
+ s.index = index
+ return s
+}
+
+// Routing is a specific routing value.
+func (s *OpenPointInTimeService) Routing(routing string) *OpenPointInTimeService {
+ s.routing = routing
+ return s
+}
+
+// IgnoreUnavailable indicates whether specified concrete indices should be
+// ignored when unavailable (missing or closed).
+func (s *OpenPointInTimeService) IgnoreUnavailable(ignoreUnavailable bool) *OpenPointInTimeService {
+ s.ignoreUnavailable = &ignoreUnavailable
+ return s
+}
+
+// ExpandWildcards indicates whether to expand wildcard expression to
+// concrete indices that are open, closed or both.
+func (s *OpenPointInTimeService) ExpandWildcards(expandWildcards string) *OpenPointInTimeService {
+ s.expandWildcards = expandWildcards
+ return s
+}
+
+// KeepAlive indicates the specific time to live for the point in time.
+func (s *OpenPointInTimeService) KeepAlive(keepAlive string) *OpenPointInTimeService {
+ s.keepAlive = keepAlive
+ return s
+}
+
+// BodyJson is the document as a serializable JSON interface.
+func (s *OpenPointInTimeService) BodyJson(body interface{}) *OpenPointInTimeService {
+ s.bodyJson = body
+ return s
+}
+
+// BodyString is the document encoded as a string.
+func (s *OpenPointInTimeService) BodyString(body string) *OpenPointInTimeService {
+ s.bodyString = body
+ return s
+}
+
+// buildURL builds the URL for the operation.
+func (s *OpenPointInTimeService) buildURL() (string, string, url.Values, error) {
+ var err error
+ var method, path string
+
+ if len(s.index) > 0 {
+ method = "POST"
+ path, err = uritemplates.Expand("/{index}/_pit", map[string]string{
+ "index": strings.Join(s.index, ","),
+ })
+ } else {
+ method = "POST"
+ path = "/_pit"
+ }
+ if err != nil {
+ return "", "", url.Values{}, err
+ }
+
+ // Add query string parameters
+ params := url.Values{}
+ if v := s.pretty; v != nil {
+ params.Set("pretty", fmt.Sprint(*v))
+ }
+ if v := s.human; v != nil {
+ params.Set("human", fmt.Sprint(*v))
+ }
+ if v := s.errorTrace; v != nil {
+ params.Set("error_trace", fmt.Sprint(*v))
+ }
+ if len(s.filterPath) > 0 {
+ params.Set("filter_path", strings.Join(s.filterPath, ","))
+ }
+ if s.preference != "" {
+ params.Set("preference", s.preference)
+ }
+ if s.routing != "" {
+ params.Set("routing", s.routing)
+ }
+ if s.ignoreUnavailable != nil {
+ params.Set("ignore_unavailable", fmt.Sprintf("%v", *s.ignoreUnavailable))
+ }
+ if s.expandWildcards != "" {
+ params.Set("expand_wildcards", s.expandWildcards)
+ }
+ if s.keepAlive != "" {
+ params.Set("keep_alive", s.keepAlive)
+ }
+ return method, path, params, nil
+}
+
+// Validate checks if the operation is valid.
+func (s *OpenPointInTimeService) Validate() error {
+ var invalid []string
+ if len(s.index) == 0 {
+ invalid = append(invalid, "Index")
+ }
+ if s.keepAlive == "" {
+ invalid = append(invalid, "KeepAlive")
+ }
+ if len(invalid) > 0 {
+ return fmt.Errorf("missing required fields: %v", invalid)
+ }
+ return nil
+}
+
+// Do executes the operation.
+func (s *OpenPointInTimeService) Do(ctx context.Context) (*OpenPointInTimeResponse, error) {
+ // Check pre-conditions
+ if err := s.Validate(); err != nil {
+ return nil, err
+ }
+
+ // Get URL for request
+ method, path, params, err := s.buildURL()
+ if err != nil {
+ return nil, err
+ }
+
+ // Setup HTTP request body
+ var body interface{}
+ if s.bodyJson != nil {
+ body = s.bodyJson
+ } else {
+ body = s.bodyString
+ }
+
+ // Get HTTP response
+ res, err := s.client.PerformRequest(ctx, PerformRequestOptions{
+ Method: method,
+ Path: path,
+ Params: params,
+ Body: body,
+ Headers: s.headers,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ // Return operation response
+ ret := new(OpenPointInTimeResponse)
+ if err := s.client.decoder.Decode(res.Body, ret); err != nil {
+ return nil, err
+ }
+ return ret, nil
+}
+
+// OpenPointInTimeResponse is the result of opening a point in time.
+type OpenPointInTimeResponse struct {
+ Id string `json:"id,omitempty"`
+}
diff --git a/vendor/github.com/olivere/elastic/v7/request.go b/vendor/github.com/olivere/elastic/v7/request.go
index 288c837aba..fd511ab211 100644
--- a/vendor/github.com/olivere/elastic/v7/request.go
+++ b/vendor/github.com/olivere/elastic/v7/request.go
@@ -11,7 +11,6 @@ import (
"io"
"io/ioutil"
"net/http"
- "runtime"
"strings"
)
@@ -24,7 +23,6 @@ func NewRequest(method, url string) (*Request, error) {
if err != nil {
return nil, err
}
- req.Header.Add("User-Agent", "elastic/"+Version+" ("+runtime.GOOS+"-"+runtime.GOARCH+")")
req.Header.Add("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
return (*Request)(req), nil
diff --git a/vendor/github.com/olivere/elastic/v7/response.go b/vendor/github.com/olivere/elastic/v7/response.go
index 200ed3d920..3e0c7de3f9 100644
--- a/vendor/github.com/olivere/elastic/v7/response.go
+++ b/vendor/github.com/olivere/elastic/v7/response.go
@@ -24,21 +24,25 @@ type Response struct {
// Header is the HTTP header from the HTTP response.
// Keys in the map are canonicalized (see http.CanonicalHeaderKey).
Header http.Header
- // Body is the deserialized response body.
+ // Body is the deserialized response body. Only available if streaming is disabled.
Body json.RawMessage
// DeprecationWarnings lists all deprecation warnings returned from
// Elasticsearch.
DeprecationWarnings []string
+ // BodyReader is the body as a reader. Only available if streaming is enabled.
+ BodyReader io.ReadCloser
}
// newResponse creates a new response from the HTTP response.
-func (c *Client) newResponse(res *http.Response, maxBodySize int64) (*Response, error) {
+func (c *Client) newResponse(res *http.Response, maxBodySize int64, stream bool) (*Response, error) {
r := &Response{
StatusCode: res.StatusCode,
Header: res.Header,
DeprecationWarnings: res.Header["Warning"],
}
- if res.Body != nil {
+ if stream {
+ r.BodyReader = res.Body
+ } else if res.Body != nil {
body := io.Reader(res.Body)
if maxBodySize > 0 {
if res.ContentLength > maxBodySize {
diff --git a/vendor/github.com/olivere/elastic/v7/search.go b/vendor/github.com/olivere/elastic/v7/search.go
index 1635104575..f47fdf5cba 100644
--- a/vendor/github.com/olivere/elastic/v7/search.go
+++ b/vendor/github.com/olivere/elastic/v7/search.go
@@ -152,6 +152,13 @@ func (s *SearchService) Collapse(collapse *CollapseBuilder) *SearchService {
return s
}
+// PointInTime specifies an optional PointInTime to be used in the context
+// of this search.
+func (s *SearchService) PointInTime(pointInTime *PointInTime) *SearchService {
+ s.searchSource = s.searchSource.PointInTime(pointInTime)
+ return s
+}
+
// TimeoutInMillis sets the timeout in milliseconds.
func (s *SearchService) TimeoutInMillis(timeoutInMillis int) *SearchService {
s.searchSource = s.searchSource.TimeoutInMillis(timeoutInMillis)
@@ -655,6 +662,7 @@ type SearchResult struct {
Profile *SearchProfile `json:"profile,omitempty"` // profiling results, if optional Profile API was active for this search
Shards *ShardsInfo `json:"_shards,omitempty"` // shard information
Status int `json:"status,omitempty"` // used in MultiSearch
+ PitId string `json:"pit_id,omitempty"` // Point In Time ID
}
// SearchResultCluster holds information about a search response
@@ -669,7 +677,7 @@ type SearchResultCluster struct {
// a search result. The return value might not be accurate, unless
// track_total_hits parameter has set to true.
func (r *SearchResult) TotalHits() int64 {
- if r.Hits != nil && r.Hits.TotalHits != nil {
+ if r != nil && r.Hits != nil && r.Hits.TotalHits != nil {
return r.Hits.TotalHits.Value
}
return 0
diff --git a/vendor/github.com/olivere/elastic/v7/search_aggs.go b/vendor/github.com/olivere/elastic/v7/search_aggs.go
index 0ba9ebf8c2..72ea92fc8b 100644
--- a/vendor/github.com/olivere/elastic/v7/search_aggs.go
+++ b/vendor/github.com/olivere/elastic/v7/search_aggs.go
@@ -580,6 +580,21 @@ func (a Aggregations) GeoHash(name string) (*AggregationBucketKeyItems, bool) {
return nil, false
}
+// GeoTile returns geo-tile aggregation results.
+// https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-aggregations-bucket-geotilegrid-aggregation.html
+func (a Aggregations) GeoTile(name string) (*AggregationBucketKeyItems, bool) {
+ if raw, found := a[name]; found {
+ agg := new(AggregationBucketKeyItems)
+ if raw == nil {
+ return agg, true
+ }
+ if err := json.Unmarshal(raw, agg); err == nil {
+ return agg, true
+ }
+ }
+ return nil, false
+}
+
// GeoCentroid returns geo-centroid aggregation results.
// See: https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-aggregations-metrics-geocentroid-aggregation.html
func (a Aggregations) GeoCentroid(name string) (*AggregationGeoCentroidMetric, bool) {
diff --git a/vendor/github.com/olivere/elastic/v7/search_aggs_bucket_geotile_grid.go b/vendor/github.com/olivere/elastic/v7/search_aggs_bucket_geotile_grid.go
new file mode 100644
index 0000000000..073c55a539
--- /dev/null
+++ b/vendor/github.com/olivere/elastic/v7/search_aggs_bucket_geotile_grid.go
@@ -0,0 +1,119 @@
+package elastic
+
+import "errors"
+
+type GeoTileGridAggregation struct {
+ field string
+ precision int
+ size int
+ shardSize int
+ bounds *BoundingBox
+ subAggregations map[string]Aggregation
+ meta map[string]interface{}
+}
+
+// NewGeoTileGridAggregation Create new bucket aggregation of Geotile grid type
+// https://www.elastic.co/guide/en/elasticsearch/reference/7.0/search-aggregations-bucket-geotilegrid-aggregation.html
+func NewGeoTileGridAggregation() *GeoTileGridAggregation {
+ return &GeoTileGridAggregation{
+ precision: -1,
+ size: -1,
+ shardSize: -1,
+ subAggregations: make(map[string]Aggregation),
+ }
+}
+
+// Field The name of the field indexed with GeoPoints. Mandatory.
+func (a *GeoTileGridAggregation) Field(field string) *GeoTileGridAggregation {
+ a.field = field
+ return a
+}
+
+// Precision The integer zoom of the key used to define cells/buckets in the results. Defaults to 7. Values outside of [0,29] will be rejected. Optional.
+func (a *GeoTileGridAggregation) Precision(precision int) *GeoTileGridAggregation {
+ a.precision = precision
+ return a
+}
+
+// Size The maximum number of buckets to return in the result structure. Optional.
+func (a *GeoTileGridAggregation) Size(size int) *GeoTileGridAggregation {
+ a.size = size
+ return a
+}
+
+// ShardSize The maximum number of buckets to return from each shard. Optional.
+func (a *GeoTileGridAggregation) ShardSize(shardSize int) *GeoTileGridAggregation {
+ a.shardSize = shardSize
+ return a
+}
+
+// Bounds The bounding box to filter the points in the bucket. Optional.
+func (a *GeoTileGridAggregation) Bounds(boundingBox BoundingBox) *GeoTileGridAggregation {
+ a.bounds = &boundingBox
+ return a
+}
+
+// SubAggregation Adds a sub-aggregation to this aggregation.
+func (a *GeoTileGridAggregation) SubAggregation(name string, subAggregation Aggregation) *GeoTileGridAggregation {
+ a.subAggregations[name] = subAggregation
+ return a
+}
+
+// Meta Sets the meta data to be included in the aggregation response.
+func (a *GeoTileGridAggregation) Meta(metaData map[string]interface{}) *GeoTileGridAggregation {
+ a.meta = metaData
+ return a
+}
+
+// Source returns the a JSON-serializable interface.
+func (a *GeoTileGridAggregation) Source() (interface{}, error) {
+ source := make(map[string]interface{})
+ opts := make(map[string]interface{})
+ source["geotile_grid"] = opts
+
+ if a.field == "" {
+ return nil, errors.New("elastic: 'field' is a mandatory parameter")
+ }
+ opts["field"] = a.field
+
+ if a.precision != -1 {
+ opts["precision"] = a.precision
+ }
+
+ if a.size != -1 {
+ opts["size"] = a.size
+ }
+
+ if a.shardSize != -1 {
+ opts["shard_size"] = a.shardSize
+ }
+
+ if a.bounds != nil {
+ opts["bounds"] = *a.bounds
+ }
+
+ if len(a.subAggregations) > 0 {
+ aggsMap := make(map[string]interface{})
+ source["aggregations"] = aggsMap
+ for name, aggregate := range a.subAggregations {
+ src, err := aggregate.Source()
+ if err != nil {
+ return nil, err
+ }
+ aggsMap[name] = src
+ }
+ }
+
+ if len(a.meta) > 0 {
+ source["meta"] = a.meta
+ }
+
+ return source, nil
+
+}
+
+// BoundingBox bounding box
+type BoundingBox struct {
+ TopLeft GeoPoint `json:"top_left"`
+ BottomRight GeoPoint `json:"bottom_right"`
+}
diff --git a/vendor/github.com/olivere/elastic/v7/search_queries_match_phrase.go b/vendor/github.com/olivere/elastic/v7/search_queries_match_phrase.go
index 974a49acbc..ad8e17d042 100644
--- a/vendor/github.com/olivere/elastic/v7/search_queries_match_phrase.go
+++ b/vendor/github.com/olivere/elastic/v7/search_queries_match_phrase.go
@@ -10,12 +10,13 @@ package elastic
// For more details, see
// https://www.elastic.co/guide/en/elasticsearch/reference/7.0/query-dsl-match-query-phrase.html
type MatchPhraseQuery struct {
- name string
- value interface{}
- analyzer string
- slop *int
- boost *float64
- queryName string
+ name string
+ value interface{}
+ analyzer string
+ slop *int
+ boost *float64
+ queryName string
+ zeroTermsQuery string
}
// NewMatchPhraseQuery creates and initializes a new MatchPhraseQuery.
@@ -36,6 +37,12 @@ func (q *MatchPhraseQuery) Slop(slop int) *MatchPhraseQuery {
return q
}
+// ZeroTermsQuery can be "all" or "none".
+func (q *MatchPhraseQuery) ZeroTermsQuery(zeroTermsQuery string) *MatchPhraseQuery {
+ q.zeroTermsQuery = zeroTermsQuery
+ return q
+}
+
// Boost sets the boost to apply to this query.
func (q *MatchPhraseQuery) Boost(boost float64) *MatchPhraseQuery {
q.boost = &boost
@@ -68,6 +75,9 @@ func (q *MatchPhraseQuery) Source() (interface{}, error) {
if q.slop != nil {
query["slop"] = *q.slop
}
+ if q.zeroTermsQuery != "" {
+ query["zero_terms_query"] = q.zeroTermsQuery
+ }
if q.boost != nil {
query["boost"] = *q.boost
}
diff --git a/vendor/github.com/olivere/elastic/v7/search_queries_wildcard.go b/vendor/github.com/olivere/elastic/v7/search_queries_wildcard.go
index 33e4ea2aab..cbb26e9905 100644
--- a/vendor/github.com/olivere/elastic/v7/search_queries_wildcard.go
+++ b/vendor/github.com/olivere/elastic/v7/search_queries_wildcard.go
@@ -13,13 +13,14 @@ package elastic
// The wildcard query maps to Lucene WildcardQuery.
//
// For more details, see
-// https://www.elastic.co/guide/en/elasticsearch/reference/7.0/query-dsl-wildcard-query.html
+// https://www.elastic.co/guide/en/elasticsearch/reference/7.x/query-dsl-wildcard-query.html
type WildcardQuery struct {
- name string
- wildcard string
- boost *float64
- rewrite string
- queryName string
+ name string
+ wildcard string
+ boost *float64
+ rewrite string
+ queryName string
+ caseInsensitive bool
}
// NewWildcardQuery creates and initializes a new WildcardQuery.
@@ -47,13 +48,20 @@ func (q *WildcardQuery) QueryName(queryName string) *WildcardQuery {
return q
}
+// CaseInsensitive sets case insensitive matching of this query.
+func (q *WildcardQuery) CaseInsensitive(caseInsensitive bool) *WildcardQuery {
+ q.caseInsensitive = caseInsensitive
+ return q
+}
+
// Source returns the JSON serializable body of this query.
func (q *WildcardQuery) Source() (interface{}, error) {
// {
// "wildcard" : {
// "user" : {
- // "wildcard" : "ki*y",
- // "boost" : 1.0
+ // "value" : "ki*y",
+ // "boost" : 1.0,
+ // "case_insensitive" : true
// }
// }
@@ -65,7 +73,7 @@ func (q *WildcardQuery) Source() (interface{}, error) {
wq := make(map[string]interface{})
query[q.name] = wq
- wq["wildcard"] = q.wildcard
+ wq["value"] = q.wildcard
if q.boost != nil {
wq["boost"] = *q.boost
@@ -76,6 +84,9 @@ func (q *WildcardQuery) Source() (interface{}, error) {
if q.queryName != "" {
wq["_name"] = q.queryName
}
+ if q.caseInsensitive {
+ wq["case_insensitive"] = true
+ }
return source, nil
}
diff --git a/vendor/github.com/olivere/elastic/v7/search_request.go b/vendor/github.com/olivere/elastic/v7/search_request.go
index 3a444b808e..e44d48ddd3 100644
--- a/vendor/github.com/olivere/elastic/v7/search_request.go
+++ b/vendor/github.com/olivere/elastic/v7/search_request.go
@@ -413,6 +413,13 @@ func (r *SearchRequest) Collapse(collapse *CollapseBuilder) *SearchRequest {
return r
}
+// PointInTime specifies an optional PointInTime to be used in the context
+// of this search.
+func (s *SearchRequest) PointInTime(pointInTime *PointInTime) *SearchRequest {
+ s.searchSource = s.searchSource.PointInTime(pointInTime)
+ return s
+}
+
// AllowPartialSearchResults indicates if this request should allow partial
// results. (If method is not called, will default to the cluster level
// setting).
diff --git a/vendor/github.com/olivere/elastic/v7/search_source.go b/vendor/github.com/olivere/elastic/v7/search_source.go
index ae2ae41cd8..7578af5b2f 100644
--- a/vendor/github.com/olivere/elastic/v7/search_source.go
+++ b/vendor/github.com/olivere/elastic/v7/search_source.go
@@ -42,6 +42,7 @@ type SearchSource struct {
collapse *CollapseBuilder // collapse
profile bool // profile
// TODO extBuilders []SearchExtBuilder // ext
+ pointInTime *PointInTime // pit
}
// NewSearchSource initializes a new SearchSource.
@@ -367,6 +368,13 @@ func (s *SearchSource) Collapse(collapse *CollapseBuilder) *SearchSource {
return s
}
+// PointInTime specifies an optional PointInTime to be used in the context
+// of this search.
+func (s *SearchSource) PointInTime(pointInTime *PointInTime) *SearchSource {
+ s.pointInTime = pointInTime
+ return s
+}
+
// Source returns the serializable JSON for the source builder.
func (s *SearchSource) Source() (interface{}, error) {
source := make(map[string]interface{})
@@ -597,6 +605,15 @@ func (s *SearchSource) Source() (interface{}, error) {
source["inner_hits"] = m
}
+ // Point in Time
+ if s.pointInTime != nil {
+ src, err := s.pointInTime.Source()
+ if err != nil {
+ return nil, err
+ }
+ source["pit"] = src
+ }
+
return source, nil
}
diff --git a/vendor/github.com/olivere/elastic/v7/update_by_query.go b/vendor/github.com/olivere/elastic/v7/update_by_query.go
index 772e2f903c..92115823af 100644
--- a/vendor/github.com/olivere/elastic/v7/update_by_query.go
+++ b/vendor/github.com/olivere/elastic/v7/update_by_query.go
@@ -46,6 +46,7 @@ type UpdateByQueryService struct {
ignoreUnavailable *bool
lenient *bool
lowercaseExpandedTerms *bool
+ maxDocs *int
pipeline string
preference string
q string
@@ -275,6 +276,12 @@ func (s *UpdateByQueryService) LowercaseExpandedTerms(lowercaseExpandedTerms boo
return s
}
+// MaxDocs specifies maximum number of documents to process
+func (s *UpdateByQueryService) MaxDocs(maxDocs int) *UpdateByQueryService {
+ s.maxDocs = &maxDocs
+ return s
+}
+
// Pipeline specifies the ingest pipeline to set on index requests made by this action (default: none).
func (s *UpdateByQueryService) Pipeline(pipeline string) *UpdateByQueryService {
s.pipeline = pipeline
@@ -567,6 +574,9 @@ func (s *UpdateByQueryService) buildURL() (string, url.Values, error) {
if v := s.lowercaseExpandedTerms; v != nil {
params.Set("lowercase_expanded_terms", fmt.Sprint(*v))
}
+ if s.maxDocs != nil {
+ params.Set("max_docs", fmt.Sprintf("%d", *s.maxDocs))
+ }
if s.pipeline != "" {
params.Set("pipeline", s.pipeline)
}
diff --git a/vendor/github.com/olivere/elastic/v7/xpack_security_get_role.go b/vendor/github.com/olivere/elastic/v7/xpack_security_get_role.go
index c2ab0fda64..fbddf6b670 100644
--- a/vendor/github.com/olivere/elastic/v7/xpack_security_get_role.go
+++ b/vendor/github.com/olivere/elastic/v7/xpack_security_get_role.go
@@ -174,7 +174,7 @@ type XPackSecurityRole struct {
type XPackSecurityApplicationPrivileges struct {
Application string `json:"application"`
Privileges []string `json:"privileges"`
- Ressources []string `json:"resources"`
+ Resources []string `json:"resources"`
}
// XPackSecurityIndicesPermissions is the indices permission object
diff --git a/vendor/github.com/olivere/elastic/v7/xpack_security_put_user.go b/vendor/github.com/olivere/elastic/v7/xpack_security_put_user.go
index f7ab77e8c8..5d9f05cae8 100644
--- a/vendor/github.com/olivere/elastic/v7/xpack_security_put_user.go
+++ b/vendor/github.com/olivere/elastic/v7/xpack_security_put_user.go
@@ -206,10 +206,5 @@ type XPackSecurityPutUserRequest struct {
// XPackSecurityPutUserResponse is the response of XPackSecurityPutUserService.Do.
type XPackSecurityPutUserResponse struct {
- User XPackSecurityPutUser `json:"user"`
-}
-
-// XPackSecurityPutUser is the response containing the creation information
-type XPackSecurityPutUser struct {
Created bool `json:"created"`
}