search

package
v0.0.0-...-4db1c77 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2025 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	IndexShows    = elasticIndex{"bccm-shows"}
	IndexSeasons  = elasticIndex{"bccm-seasons"}
	IndexEpisodes = elasticIndex{"bccm-episodes"}
	Indices       = enum.New(IndexShows, IndexSeasons, IndexEpisodes)
)

Functions

This section is empty.

Types

type AlgoliaConfig

type AlgoliaConfig struct {
	AppID  string
	APIKey string
}

AlgoliaConfig contains configuration options for the service

type Config

type Config struct {
	Algolia AlgoliaConfig
	Elastic ElasticConfig
}

Config contains configuration options for the service

type ElasticConfig

type ElasticConfig struct {
	CloudID string
	ApiKey  string

	URL      string
	Username string
	Password string
}

ElasticConfig contains configuration options for the service If CloudID is defined it takes precedence above URL

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service is the type for the service itself

func New

func New(queries *sqlc.Queries, config Config) *Service

New creates a new instance of the search service

func (*Service) DeleteModel

func (service *Service) DeleteModel(ctx context.Context, collection string, key string) error

DeleteModel from index by collection and id

func (*Service) IndexModel

func (service *Service) IndexModel(ctx context.Context, collection string, key string) (err error)

IndexModel by collection and id

func (*Service) Reindex

func (service *Service) Reindex(ctx context.Context) error

Reindex every supported collection with Algolia

func (*Service) ReindexElastic

func (service *Service) ReindexElastic(ctx context.Context) error

ReindexElastic reindexes all data in elastic

Please note that this will delete all data in elastic first, then recreate it This may not be what we want in the long term but it works for now, and is simple

func (*Service) Search

func (service *Service) Search(ctx *gin.Context, query common.SearchQuery, userToken string) (searchResult common.SearchResult, err error)

Search sends a search query to the engine and returns related results

func (*Service) SearchElastic

func (service *Service) SearchElastic(ctx *gin.Context, query common.SearchQuery, userToken string) (searchResult common.SearchResult, err error)

SearchElastic sends a search query to the engine and returns related results

func (*Service) TopbarSearch

func (service *Service) TopbarSearch(ctx *gin.Context, term string, size int) ([]common.TopbarSearchResult, error)

TopbarSearch performs a search optimized for the topbar dropdown

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL