AbstractProtectedconfigConfig from the SearchProvider metadata record, set during Initialize()
Abstract ReadonlySourceWhich search source this provider represents
Get the metadata provider used by this search provider, falling back to the global default.
Set the metadata provider used by this search provider for entity lookups.
Check and cache whether this provider is operational. Called after Initialize(). Override for providers that need to verify external dependencies (e.g., vector indexes exist, API keys are valid).
The default implementation returns true (always available).
The user context for availability checks
Initialize the provider with configuration from the SearchProvider entity. Called once during SearchEngine.Config(). Override to perform provider-specific setup (e.g., connecting to external APIs using credentials).
Configuration from the SearchProvider metadata record
The user context for initialization
Whether this provider is currently available (configured and operational). The SearchEngine will skip providers that return false.
AbstractSearchExecute a search and return result items with scores.
When scopeConstraints is provided, the provider MUST:
MetadataFilter / ExtraFilter / UserSearchString /
FolderPath values as native filters.contextUser cannot see.scopeConstraints.QueryTransforms when a per-provider rewrite is supplied —
look up by your SourceType or provider-specific key and use that string in place
of the raw query.When scopeConstraints is undefined, the provider runs unconstrained (backward
compatible pre-scope behavior).
The search query text
Maximum number of results to retrieve
Optional filters to narrow results
The user performing the search
OptionalscopeConstraints: ScopeConstraintsOptional per-scope constraint set, pre-rendered with SearchContext values
Scored result items from this provider
StaticGetEnumerate every search provider currently registered with ClassFactory under
BaseSearchProvider. Designed for the SearchScope form's provider dropdown
(P5.5) — populates the dropdown from this single call rather than hardcoding
a list, so any ClassFactory-registered provider (including third-party ones)
shows up automatically.
Each entry includes the driver-class registration key (writes into
SearchProvider.DriverClass) and the SourceType the provider implements.
Sorted by DriverClass for stable UI ordering.
Abstract base class for search providers. Subclasses must be registered with @RegisterClass(BaseSearchProvider, 'DriverClassName') to be discoverable by the SearchEngine.
Lifecycle: