public class PageTemplateSearcher extends Searcher
Input query properties:
page.idList
- a List<String> of id strings of the page templates this should choose betweenpage.id
- a space-separated string of ids of the page templates this should choose between.
This property is ignored if page.idList
is setpage.resolver
the id of the resolver to use to resolve choices. This is either the component id
of a deployed resolver component, or one of the strings
native.deterministic
(which always pics the last choice) or native.random
page.ListOfPageTemplate
A List<PageTemplate>
containing a list of the page templates used for this query
The set of page templates chosen for the query specifies a list of sources to be queries (the page template sources). In addition, the query may contain
IntentModel
(the intent model sources)
Modifier and Type | Field and Description |
---|---|
private Organizer |
organizer |
static com.yahoo.processing.request.CompoundName |
pageIdListName
The name of the query property containing a list of candidate pages to consider
|
static com.yahoo.processing.request.CompoundName |
pageIdName
The name of the query property containing the page id to use
|
static com.yahoo.processing.request.CompoundName |
pagePageTemplateListName
The name of the query property containing the resolved candidate page template list
|
static com.yahoo.processing.request.CompoundName |
pageResolverName
The name of the query property containing the resolver id to use
|
private ResolverRegistry |
resolverRegistry |
private PageTemplateRegistry |
templateRegistry |
Modifier | Constructor and Description |
---|---|
private |
PageTemplateSearcher(PageTemplateRegistry templateRegistry,
List<Resolver> resolvers) |
|
PageTemplateSearcher(PageTemplateRegistry templateRegistry,
Resolver... resolvers)
Creates this from an existing page template registry, using only built-in resolvers
|
|
PageTemplateSearcher(PageTemplatesConfig pageTemplatesConfig,
com.yahoo.component.provider.ComponentRegistry<Resolver> resolverRegistry)
Creates this from a configuration.
|
Modifier and Type | Method and Description |
---|---|
private void |
addErrorIfSameSourceMultipleTimes(List<PageElement> pages,
Set<Source> sources,
Query query)
Currently executing multiple queries to the same source with different parameter sets,
is not supported.
|
private void |
addPageTemplateSources(Set<Source> pageSources,
Query query) |
private void |
addParameters(Source source,
Query query)
Adds parameters specified in the source to the correct namespace in the query
|
private void |
addParametersForIncludedSources(Set<Source> sources,
Query query) |
private void |
addSources(List<PageElement> pages,
Query query)
Sets query.getModel().getSources() to the right value and add source parameters specified in templates
|
Result |
search(Query query,
Execution execution)
Override this to implement your searcher.
|
private List<PageElement> |
selectPageTemplates(Query query)
Returns the list of page templates specified in the query, or the default if none, or the
empty list if no default, never null.
|
private Resolver |
selectResolver(Query query) |
ensureFilled, fill, getLogger, process, toString
getAnnotatedDependencies, getDefaultAnnotatedDependencies, getDependencies, initDependencies
public static final com.yahoo.processing.request.CompoundName pagePageTemplateListName
public static final com.yahoo.processing.request.CompoundName pageIdListName
public static final com.yahoo.processing.request.CompoundName pageIdName
public static final com.yahoo.processing.request.CompoundName pageResolverName
private final ResolverRegistry resolverRegistry
private final Organizer organizer
private final PageTemplateRegistry templateRegistry
@Inject public PageTemplateSearcher(PageTemplatesConfig pageTemplatesConfig, com.yahoo.component.provider.ComponentRegistry<Resolver> resolverRegistry)
public PageTemplateSearcher(PageTemplateRegistry templateRegistry, Resolver... resolvers)
templateRegistry
- the page template registry. This will be frozen by this call.resolvers
- the resolvers to use, in addition to the default resolversprivate PageTemplateSearcher(PageTemplateRegistry templateRegistry, List<Resolver> resolvers)
public Result search(Query query, Execution execution)
Searcher
Searcher implementation subclasses will, depending on their type of logic, do one of the following:
Hits come in two kinds - concrete hits are actual content of the kind requested by the user, meta hits are hits which provides information about the collection of hits, on the query, the service and so on.
The query specifies a window into a larger result list that must be returned from the searcher through hits and offset; Searchers which returns list of hits in the top level in the result must return at least hits number of hits (or if impossible; all that are available), starting at the given offset. In addition, searchers are allowed to return any number of meta hits (although this number is expected to be low). For hits contained in nested hit groups, the concept of a window defined by hits and offset is not well defined and does not apply.
Error handling in searchers:
private List<PageElement> selectPageTemplates(Query query)
private void addSources(List<PageElement> pages, Query query)
private void addParametersForIncludedSources(Set<Source> sources, Query query)
private void addParameters(Source source, Query query)
private void addErrorIfSameSourceMultipleTimes(List<PageElement> pages, Set<Source> sources, Query query)
Copyright © 2018. All rights reserved.