Documentation
¶
Index ¶
- Constants
- func FormatMultiQuery(rawQuery []byte) ([]byte, error)
- func LegacyFormatMultiQuery(rawQuery []byte) ([]byte, error)
- func ParseQuery(q string) (s1, s2 string)
- func SetupSearch() (*template.Template, error)
- func SetupV710Count() (*template.Template, error)
- func SetupV710Search() (*template.Template, error)
- type AggregationFields
- type Builder
- func (sb *Builder) AddNlpCategorySearch(nlpCriteria *NlpCriteria, category, subCategory string, ...) *NlpCriteria
- func (sb *Builder) AddNlpSubdivisionSearch(nlpCriteria *NlpCriteria, subdivisionWords string) *NlpCriteria
- func (sb *Builder) BuildCountQuery(_ context.Context, reqParams *CountRequest) ([]byte, error)
- func (sb *Builder) BuildSearchQuery(_ context.Context, reqParams *SearchRequest, esVersion710 bool) ([]byte, error)
- type CountRequest
- type Date
- type DimensionRequest
- type InvalidDateString
- type InvalidReleaseTypeString
- type InvalidSortString
- type NlpCriteria
- type NlpCriteriaCategory
- type NlpSettings
- type ParamValidator
- type PopulationTypeRequest
- type ReleaseBuilder
- type ReleaseSearchRequest
- func (sr ReleaseSearchRequest) CensusClause() string
- func (sr ReleaseSearchRequest) HighlightClause() string
- func (sr ReleaseSearchRequest) Now() string
- func (sr ReleaseSearchRequest) ReleaseTypeClause() string
- func (sr *ReleaseSearchRequest) Set(value string) error
- func (sr ReleaseSearchRequest) SortClause() string
- func (sr *ReleaseSearchRequest) String() string
- type ReleaseType
- type SearchRequest
- type Sort
Constants ¶
const ( Term string = "Term={{.Term}};" Now string = "Now={{.Now}};" Size string = "Size={{.Size}};" Highlight string = "Highlight={{.Highlight}};" From string = "From={{.From}};" )
const ( Separator = "," EmptyClause = `{}` NoProvisionalNoConfirmedPostponed = ` {"term":{"finalised":true}}, {"exists":{"field":"date_changes"}} ` NoProvisionalConfirmedNoPostponed = ` {"term":{"finalised":true}}, {"bool":{"must_not":{"exists":{"field":"date_changes"}}}} ` NoProvisionalConfirmedPostponed = ` {"term":{"finalised":true}} ` ProvisionalNoConfirmedNoPostponed = ` {"term":{"finalised":false}} ` ProvisionalNoConfirmedPostponed = `` /* 215-byte string literal not displayed */ ProvisionalConfirmedNoPostponed = `` /* 237-byte string literal not displayed */ )
Variables ¶
This section is empty.
Functions ¶
func FormatMultiQuery ¶
FormatMultiQuery minifies and reformats an elasticsearch MultiQuery
func LegacyFormatMultiQuery ¶
LegacyFormatMultiQuery minifies and reformats an elasticsearch MultiQuery
func ParseQuery ¶
ParseQuery :
escapes double quotes (") in the given query q, so that ElasticSearch will accept them
looks for a prefix in the given query q (which can be used to determine the type of query passed to ElasticSearch)
returns the escaped query with the prefix removed (if any was prefixed), together with the name of the template to use to generate the ElasticSearch query
func SetupSearch ¶
SetupSearch loads templates for use by the search handler and should be done only once
func SetupV710Count ¶ added in v1.32.0
SetupV710Count loads v710 templates for use by the search handler and should be done only once
func SetupV710Search ¶
SetupV710Search loads v710 templates for use by the search handler and should be done only once
Types ¶
type AggregationFields ¶ added in v1.34.0
type AggregationFields struct {
Topics string
ContentTypes string
PopulationTypes string
Dimensions string
}
AggregationFields are the elasticsearch keys for which the aggregations will be done
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder represents an instance of a query builder
func NewQueryBuilder ¶
NewQueryBuilder loads the elastic search templates and returns a query builder instance
func (*Builder) AddNlpCategorySearch ¶ added in v1.43.0
func (sb *Builder) AddNlpCategorySearch(nlpCriteria *NlpCriteria, category, subCategory string, categoryWeighting float32) *NlpCriteria
func (*Builder) AddNlpSubdivisionSearch ¶ added in v1.43.0
func (sb *Builder) AddNlpSubdivisionSearch(nlpCriteria *NlpCriteria, subdivisionWords string) *NlpCriteria
func (*Builder) BuildCountQuery ¶ added in v1.32.0
BuildSearchQuery creates an elastic search query from the provided search parameters
func (*Builder) BuildSearchQuery ¶
func (sb *Builder) BuildSearchQuery(_ context.Context, reqParams *SearchRequest, esVersion710 bool) ([]byte, error)
BuildSearchQuery creates an elastic search query from the provided search parameters
type CountRequest ¶ added in v1.34.0
type Date ¶
func MustParseDate ¶
type DimensionRequest ¶ added in v1.34.0
type InvalidDateString ¶
type InvalidDateString struct {
// contains filtered or unexported fields
}
func (InvalidDateString) Error ¶
func (ids InvalidDateString) Error() string
type InvalidReleaseTypeString ¶
type InvalidReleaseTypeString string
func (InvalidReleaseTypeString) Error ¶
func (irts InvalidReleaseTypeString) Error() string
type InvalidSortString ¶
type InvalidSortString string
func (InvalidSortString) Error ¶
func (iss InvalidSortString) Error() string
type NlpCriteria ¶ added in v1.43.0
type NlpCriteria struct {
UseCategory bool
Categories []NlpCriteriaCategory
UseSubdivision bool
SubdivisionWords string
}
type NlpCriteriaCategory ¶ added in v1.43.0
type NlpSettings ¶ added in v1.43.0
type ParamValidator ¶
type ParamValidator map[paramName]validator
ParamValidator is a map of parameters to their corresponding validator func
func NewReleaseQueryParamValidator ¶
func NewReleaseQueryParamValidator() ParamValidator
NewReleaseQueryParamValidator creates a validator to validate parameters for the Release endpoint
func NewSearchQueryParamValidator ¶ added in v1.34.0
func NewSearchQueryParamValidator() ParamValidator
NewSearchQueryParamValidator creates a validator to validate parameters for the Search endpoint
type PopulationTypeRequest ¶ added in v1.34.0
type ReleaseBuilder ¶
type ReleaseBuilder struct {
// contains filtered or unexported fields
}
func NewReleaseBuilder ¶
func NewReleaseBuilder() (*ReleaseBuilder, error)
func (*ReleaseBuilder) BuildSearchQuery ¶
func (rb *ReleaseBuilder) BuildSearchQuery(_ context.Context, searchRequest interface{}) ([]esClient.Search, error)
BuildSearchQuery builds an elastic search query from the provided search parameters for Release Calendars
type ReleaseSearchRequest ¶
type ReleaseSearchRequest struct {
Term string
Template string
From int
Size int
SortBy Sort
ReleasedAfter Date
ReleasedBefore Date
Type ReleaseType
Provisional bool
Confirmed bool
Postponed bool
Census bool
Highlight bool
}
func (ReleaseSearchRequest) CensusClause ¶
func (sr ReleaseSearchRequest) CensusClause() string
func (ReleaseSearchRequest) HighlightClause ¶
func (sr ReleaseSearchRequest) HighlightClause() string
func (ReleaseSearchRequest) Now ¶
func (sr ReleaseSearchRequest) Now() string
func (ReleaseSearchRequest) ReleaseTypeClause ¶
func (sr ReleaseSearchRequest) ReleaseTypeClause() string
ReleaseTypeClause returns the query clause to select the type of release Note that it is possible for a Release to have both its Published and Cancelled flags true (yes indeed!) In this case it is deemed cancelled
func (*ReleaseSearchRequest) Set ¶
func (sr *ReleaseSearchRequest) Set(value string) error
func (ReleaseSearchRequest) SortClause ¶
func (sr ReleaseSearchRequest) SortClause() string
func (*ReleaseSearchRequest) String ¶
func (sr *ReleaseSearchRequest) String() string
type ReleaseType ¶
type ReleaseType int
const ( InvalidReleaseType ReleaseType = iota Upcoming Published Cancelled )
func MustParseReleaseType ¶
func MustParseReleaseType(s string) ReleaseType
func ParseReleaseType ¶
func ParseReleaseType(s string) (ReleaseType, error)
func (ReleaseType) String ¶
func (rt ReleaseType) String() string
type SearchRequest ¶ added in v1.34.0
type SearchRequest struct {
Term string
From int
Size int
Types []string
Index string
SortBy string
ReleasedAfter Date
ReleasedBefore Date
AggregationField string // Deprecated (used only in legacy templates for aggregations)
AggregationFields *AggregationFields
Highlight bool
URIPrefix string
NlpCategories []NlpCriteriaCategory
NlpSubdivisionWords string
Topic []string
TopicWildcard []string
PopulationTypes []*PopulationTypeRequest
Dimensions []*DimensionRequest
Now string
DatasetIDs []string
CDIDs []string
URIs []string
}
SearchRequest holds the values provided by a request against Search API The values are used to build the elasticsearch query using the corresponding template/s