Documentation
¶
Index ¶
- Constants
- Variables
- type Agg
- type AggArray
- type AggBuilder
- type Aggregation
- type BoolQuery
- type BoolQueryBuilder
- type Client
- type ConfiguredFields
- type DatasourceInfo
- type DateHistogramAgg
- type DateRangeFilter
- type ExtendedBounds
- type Filter
- type FilterQueryBuilder
- func (b *FilterQueryBuilder) AddDateRangeFilter(timeField string, lteMillisecs int64, gteMillisecs int64) *FilterQueryBuilder
- func (b *FilterQueryBuilder) AddQueryStringFilter(querystring string, analyseWildcard bool, defaultOperator string) *FilterQueryBuilder
- func (b *FilterQueryBuilder) Build() ([]Filter, error)
- type FiltersAggregation
- type GeoHashGridAggregation
- type HistogramAgg
- type MetricAggregation
- type MultiSearchRequestBuilder
- type MultiSearchResponse
- type NestedAggregation
- type PipelineAggregation
- type Query
- type QueryBuilder
- type QueryStringFilter
- type QuickwitQueryError
- type RangeFilter
- type ReadyStatus
- type SearchRequest
- type SearchRequestBuilder
- func (b *SearchRequestBuilder) AddSearchAfter(value any) *SearchRequestBuilder
- func (b *SearchRequestBuilder) Agg() AggBuilder
- func (b *SearchRequestBuilder) Build() (*SearchRequest, error)
- func (b *SearchRequestBuilder) Query() *QueryBuilder
- func (b *SearchRequestBuilder) Size(size int) *SearchRequestBuilder
- func (b *SearchRequestBuilder) Sort(order SortOrder, field string, format string) *SearchRequestBuilder
- type SearchResponse
- type SearchResponseHits
- type SortOrder
- type TermsAggregation
Constants ¶
const ( HighlightPreTagsString = "@HIGHLIGHT@" HighlightPostTagsString = "@/HIGHLIGHT@" HighlightFragmentSize = 2147483647 )
const DateFormatEpochMS = "epoch_millis"
DateFormatEpochMS represents a date format of epoch milliseconds (epoch_millis)
Variables ¶
var NewClient = func(ctx context.Context, ds *DatasourceInfo) (Client, error) { logger.Debug("Creating new client", "index", ds.Database) return &baseClientImpl{ ctx: ctx, ds: ds, index: ds.Database, }, nil }
NewClient creates a new Quickwit client
Functions ¶
This section is empty.
Types ¶
type Agg ¶
type Agg struct {
Key string
Aggregation *aggContainer
}
Agg represents a key and aggregation
func (*Agg) MarshalJSON ¶
MarshalJSON returns the JSON encoding of the agg
type AggArray ¶
type AggArray []*Agg
AggArray represents a collection of key/aggregation pairs
func (AggArray) MarshalJSON ¶
MarshalJSON returns the JSON encoding of the agg
type AggBuilder ¶
type AggBuilder interface {
Histogram(key, field string, fn func(a *HistogramAgg, b AggBuilder)) AggBuilder
DateHistogram(key, field string, fn func(a *DateHistogramAgg, b AggBuilder)) AggBuilder
Terms(key, field string, fn func(a *TermsAggregation, b AggBuilder)) AggBuilder
Nested(key, path string, fn func(a *NestedAggregation, b AggBuilder)) AggBuilder
Filters(key string, fn func(a *FiltersAggregation, b AggBuilder)) AggBuilder
GeoHashGrid(key, field string, fn func(a *GeoHashGridAggregation, b AggBuilder)) AggBuilder
Metric(key, metricType, field string, fn func(a *MetricAggregation)) AggBuilder
Pipeline(key, pipelineType string, bucketPath interface{}, fn func(a *PipelineAggregation)) AggBuilder
Build() (AggArray, error)
}
AggBuilder represents an aggregation builder
type BoolQuery ¶
type BoolQuery struct {
Filters []Filter
}
BoolQuery represents a bool query
func (*BoolQuery) MarshalJSON ¶
MarshalJSON returns the JSON encoding of the boolean query.
type BoolQueryBuilder ¶
type BoolQueryBuilder struct {
// contains filtered or unexported fields
}
BoolQueryBuilder represents a bool query builder
func NewBoolQueryBuilder ¶
func NewBoolQueryBuilder() *BoolQueryBuilder
NewBoolQueryBuilder create a new bool query builder
func (*BoolQueryBuilder) Build ¶
func (b *BoolQueryBuilder) Build() (*BoolQuery, error)
Build builds and return a bool query builder
func (*BoolQueryBuilder) Filter ¶
func (b *BoolQueryBuilder) Filter() *FilterQueryBuilder
Filter creates and return a filter query builder
type Client ¶
type Client interface {
ExecuteMultisearch(r []*SearchRequest) ([]*json.RawMessage, error)
}
Client represents a client which can interact with elasticsearch api
type ConfiguredFields ¶
type ConfiguredFields struct {
TimeField string
TimeOutputFormat string
LogMessageField string
LogLevelField string
}
TODO: Move ConfiguredFields closer to handlers, the client layer doesn't need this stuff
type DatasourceInfo ¶
type DatasourceInfo struct {
ID int64
HTTPClient *http.Client
URL string
Database string
ConfiguredFields ConfiguredFields
MaxConcurrentShardRequests int64
ReadyStatus chan ReadyStatus
ShouldInit bool
}
type DateHistogramAgg ¶
type DateHistogramAgg struct {
Field string `json:"field"`
FixedInterval string `json:"fixed_interval,omitempty"`
MinDocCount int `json:"min_doc_count"`
Missing *string `json:"missing,omitempty"`
ExtendedBounds *ExtendedBounds `json:"extended_bounds"`
// Format string `json:"format"`
Offset string `json:"offset,omitempty"`
TimeZone string `json:"time_zone,omitempty"`
}
DateHistogramAgg represents a date histogram aggregation
type DateRangeFilter ¶
RangeFilter represents a range search filter
func (*DateRangeFilter) MarshalJSON ¶
func (f *DateRangeFilter) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the query string filter.
type ExtendedBounds ¶
ExtendedBounds represents extended bounds
type FilterQueryBuilder ¶
type FilterQueryBuilder struct {
// contains filtered or unexported fields
}
FilterQueryBuilder represents a filter query builder
func NewFilterQueryBuilder ¶
func NewFilterQueryBuilder() *FilterQueryBuilder
NewFilterQueryBuilder creates a new filter query builder
func (*FilterQueryBuilder) AddDateRangeFilter ¶
func (b *FilterQueryBuilder) AddDateRangeFilter(timeField string, lteMillisecs int64, gteMillisecs int64) *FilterQueryBuilder
AddDateRangeFilter adds a new time range filter
func (*FilterQueryBuilder) AddQueryStringFilter ¶
func (b *FilterQueryBuilder) AddQueryStringFilter(querystring string, analyseWildcard bool, defaultOperator string) *FilterQueryBuilder
AddQueryStringFilter adds a new query string filter
func (*FilterQueryBuilder) Build ¶
func (b *FilterQueryBuilder) Build() ([]Filter, error)
Build builds and return a filter query builder
type FiltersAggregation ¶
type FiltersAggregation struct {
Filters map[string]interface{} `json:"filters"`
}
FiltersAggregation represents a filters aggregation
type GeoHashGridAggregation ¶
GeoHashGridAggregation represents a geo hash grid aggregation
type HistogramAgg ¶
type HistogramAgg struct {
Interval int `json:"interval,omitempty"`
Field string `json:"field"`
MinDocCount int `json:"min_doc_count"`
Missing *int `json:"missing,omitempty"`
}
HistogramAgg represents a histogram aggregation
type MetricAggregation ¶
MetricAggregation represents a metric aggregation
func (*MetricAggregation) MarshalJSON ¶
func (a *MetricAggregation) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the metric aggregation
type MultiSearchRequestBuilder ¶
type MultiSearchRequestBuilder struct {
// contains filtered or unexported fields
}
MultiSearchRequestBuilder represents a builder which can build a multi search request
func NewMultiSearchRequestBuilder ¶
func NewMultiSearchRequestBuilder() *MultiSearchRequestBuilder
NewMultiSearchRequestBuilder creates a new multi search request builder
func (*MultiSearchRequestBuilder) Build ¶
func (m *MultiSearchRequestBuilder) Build() ([]*SearchRequest, error)
Build builds and return a multi search request
func (*MultiSearchRequestBuilder) Search ¶
func (m *MultiSearchRequestBuilder) Search(interval time.Duration) *SearchRequestBuilder
Search initiates and returns a new search request builder
type MultiSearchResponse ¶
type MultiSearchResponse struct {
Responses []*json.RawMessage `json:"responses"`
}
Multisearch uses a shallow unmarshalled struct to defer the decoding to downstream handlers
type NestedAggregation ¶
type NestedAggregation struct {
Path string `json:"path"`
}
NestedAggregation represents a nested aggregation
type PipelineAggregation ¶
type PipelineAggregation struct {
BucketPath interface{}
Settings map[string]interface{}
}
PipelineAggregation represents a metric aggregation
func (*PipelineAggregation) MarshalJSON ¶
func (a *PipelineAggregation) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the pipeline aggregation
type QueryBuilder ¶
type QueryBuilder struct {
// contains filtered or unexported fields
}
QueryBuilder represents a query builder
func NewQueryBuilder ¶
func NewQueryBuilder() *QueryBuilder
NewQueryBuilder create a new query builder
func (*QueryBuilder) Bool ¶
func (b *QueryBuilder) Bool() *BoolQueryBuilder
Bool creates and return a query builder
func (*QueryBuilder) Build ¶
func (b *QueryBuilder) Build() (*Query, error)
Build builds and return a query builder
type QueryStringFilter ¶
QueryStringFilter represents a query string search filter
func (*QueryStringFilter) MarshalJSON ¶
func (f *QueryStringFilter) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the query string filter.
type QuickwitQueryError ¶ added in v0.3.0
type QuickwitQueryError struct {
Status int `json:"status"`
Message string `json:"message"`
ResponseBody io.ReadCloser `json:"response_body"`
RequestBody []*SearchRequest `json:"request_body"`
QueryParam string `json:"query_param"`
}
type RangeFilter ¶
RangeFilter represents a range search filter
func (*RangeFilter) MarshalJSON ¶
func (f *RangeFilter) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the query string filter.
type ReadyStatus ¶ added in v0.4.6
type SearchRequest ¶
type SearchRequest struct {
Index []string
Interval time.Duration
Size int
Sort []map[string]map[string]interface{}
Query *Query
Aggs AggArray
CustomProps map[string]interface{}
}
SearchRequest represents a search request
func (*SearchRequest) MarshalJSON ¶
func (r *SearchRequest) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the request.
type SearchRequestBuilder ¶
type SearchRequestBuilder struct {
// contains filtered or unexported fields
}
SearchRequestBuilder represents a builder which can build a search request
func NewSearchRequestBuilder ¶
func NewSearchRequestBuilder(interval time.Duration) *SearchRequestBuilder
NewSearchRequestBuilder create a new search request builder
func (*SearchRequestBuilder) AddSearchAfter ¶
func (b *SearchRequestBuilder) AddSearchAfter(value any) *SearchRequestBuilder
func (*SearchRequestBuilder) Agg ¶
func (b *SearchRequestBuilder) Agg() AggBuilder
Agg initiate and returns a new aggregation builder
func (*SearchRequestBuilder) Build ¶
func (b *SearchRequestBuilder) Build() (*SearchRequest, error)
Build builds and return a search request
func (*SearchRequestBuilder) Query ¶
func (b *SearchRequestBuilder) Query() *QueryBuilder
Query creates and return a query builder
func (*SearchRequestBuilder) Size ¶
func (b *SearchRequestBuilder) Size(size int) *SearchRequestBuilder
Size sets the size of the search request
func (*SearchRequestBuilder) Sort ¶
func (b *SearchRequestBuilder) Sort(order SortOrder, field string, format string) *SearchRequestBuilder
Sort adds a "asc" | "desc" sort to the search request
type SearchResponse ¶
type SearchResponse struct {
Error map[string]interface{} `json:"error"`
Aggregations map[string]interface{} `json:"aggregations"`
Hits *SearchResponseHits `json:"hits"`
}
SearchResponse represents a search response
type SearchResponseHits ¶
type SearchResponseHits struct {
Hits []map[string]interface{}
}
SearchResponseHits represents search response hits
type TermsAggregation ¶
type TermsAggregation struct {
Field string `json:"field"`
Size int `json:"size"`
ShardSize int `json:"shard_size"`
Order map[string]interface{} `json:"order"`
MinDocCount *int `json:"min_doc_count,omitempty"`
Missing *string `json:"missing,omitempty"`
}
TermsAggregation represents a terms aggregation