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 }
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