Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Category ¶ added in v0.32.0
type Category struct { Engines []engines.Name RequiredEngines []engines.Name RequiredByOriginEngines []engines.Name PreferredEngines []engines.Name PreferredByOriginEngines []engines.Name Ranking Ranking Timings Timings }
func Base64ToCategoryType ¶ added in v0.32.0
type CategoryJSON ¶ added in v0.32.0
type CategoryJSON struct { Engines map[string]EngineJSON `koanf:"engines"` Ranking RankingJSON `koanf:"ranking"` Timings TimingsJSON `koanf:"timings"` }
CategoryJSON is format in which the config is passed from the user.
func Base64ToCategoryJSON ¶ added in v0.32.0
func Base64ToCategoryJSON(b64 string) (CategoryJSON, error)
func (CategoryJSON) ToCategoryType ¶ added in v0.32.0
func (cj CategoryJSON) ToCategoryType() (Category, error)
Converts the category JSON into a more program friendly category type. Returns an error if any issues occur during the conversion.
type EngineJSON ¶ added in v0.32.0
type EngineJSON struct { // If false, the engine will not be used and other options will be ignored. // This adds the engine to engines slice during conversion. Enabled bool `koanf:"enabled"` // If true, the engine will be awaited unless the hard timeout is reached. // This adds the engine to required engines slice during conversion. Required bool `koanf:"required"` // If true, the fastest engine that has this engine in "Origins" will be awaited unless the hard timeout is reached. // This means that we want to get results from this engine or any engine that has this engine in "Origins", whichever responds the fastest. // This adds the engine to required engines by origin slice during conversion. RequiredByOrigin bool `koanf:"requiredbyorigin"` // If true, the engine will be awaited unless the preferred timeout is reached. // This adds the engine to preferred engines slice during conversion. Preferred bool `koanf:"preferred"` // If true, the fastest engine that has this engine in "Origins" will be awaited unless the preferred timeout is reached. // This means that we want to get results from this engine or any engine that has this engine in "Origins", whichever responds the fastest. // This adds the engine to preferred by origin slice during conversion. PreferredByOrigin bool `koanf:"preferredbyorigin"` }
EngineJSON is format in which the config is passed from the user.
type EngineRanking ¶ added in v0.32.0
type EngineRankingJSON ¶ added in v0.32.0
type Ranking ¶ added in v0.32.0
type Ranking struct { // The exponent, multiplier and addition used on the rank itself. RankExp float64 RankMul float64 RankAdd float64 // The multiplier and addition used on the rank score (number calculated from dividing 100 with the rank + above variables applied). RankScoreMul float64 RankScoreAdd float64 // The multiplier and addition used on the number of times the result was returned. TimesReturnedMul float64 TimesReturnedAdd float64 // The multiplier and addition used on the times returned score (number calculated from doing log(timesReturnedNum + above variables applied)). TimesReturnedScoreMul float64 TimesReturnedScoreAdd float64 // Multipliers and additions for each engine, applied to the rank score. Engines map[engines.Name]EngineRanking }
type RankingJSON ¶ added in v0.32.0
type RankingJSON struct { // The exponent, multiplier and addition used on the rank itself. RankExp float64 `koanf:"rankexp"` RankMul float64 `koanf:"rankmul"` RankAdd float64 `koanf:"rankconst"` // The multiplier and addition used on the rank score (number calculated from dividing 100 with the rank + above variables applied). RankScoreMul float64 `koanf:"rankscoremul"` RankScoreAdd float64 `koanf:"rankscoreadd"` // The multiplier and addition used on the number of times the result was returned. TimesReturnedMul float64 `koanf:"timesreturnedmul"` TimesReturnedAdd float64 `koanf:"timesreturnedadd"` // The multiplier and addition used on the times returned score (number calculated from doing log(timesReturnedNum + above variables applied)). TimesReturnedScoreMul float64 `koanf:"timesreturnedscoremul"` TimesReturnedScoreAdd float64 `koanf:"timesreturnedscoreadd"` // Multipliers and additions for each engine, applied to the rank score. Engines map[string]EngineRankingJSON `koanf:"engines"` }
RankingJSON is format in which the config is passed from the user.
type Timings ¶ added in v0.32.0
type Timings struct { // Maximum amount of time to wait for the PreferredEngines (or ByOrigin) to respond. // If the search is still waiting for the RequiredEngines (or ByOrigin) after this time, the search will continue. PreferredTimeout time.Duration // Hard timeout after which the search is forcefully stopped (even if the engines didn't respond). HardTimeout time.Duration }
type TimingsJSON ¶ added in v0.32.0
type TimingsJSON struct { // Maximum amount of time to wait for the PreferredEngines (or ByOrigin) to respond. // If the search is still waiting for the RequiredEngines (or ByOrigin) after this time, the search will continue. PreferredTimeout string `koanf:"preferredtimeout"` // Hard timeout after which the search is forcefully stopped (even if the engines didn't respond). HardTimeout string `koanf:"hardtimeout"` }
TimingsJSON is format in which the config is passed from the user. In <number><unit> format. Example: 1s, 1m, 1h, 1d, 1w, 1M, 1y. If unit is not specified, it is assumed to be milliseconds.
Click to show internal directories.
Click to hide internal directories.