Search Facade
Whilst content browsing is still the most common way to discover content, search is a very useful tool when trying to find specific content by one of its features, such as title, actor or description. A benefit of this functionality is that other content can also be discovered.
OpenTV Video Platform facilitates content search either via the Search Façade (where multiple content sources can be searched simultaneously) or via direct MDS search. It is recommended that Search Façade be used as the default configuration, as this encapsulates the underlying MDS search, and it also ensures that additional search engine use can be catered for should this be required in the future.
The Search Façade has a generic interface, removing the need for knowledge of bespoke search engine query calls. Exposing the search functionality in this way allows for a greater degree of control over the queries that can be performed, which in turn then allows for better performance tuning and more predictable scaling.
Each supported search solution is facilitated by its own Search Façade adapter. The addition of future search solutions will depend on the deployment of similar adapters.
Search Façade API - Request
This API supports the following parameters in the request:
Mandatory - Specifying the search term
Optional - Specifying a filtered set of fields to match
Title
Description
Synopsis
Actor
Director
Optional- Specifying the desired combination of search scope
VOD
STCU
SEASON
SERIES
PROGRAMME
Optional - Group by season or series
Optional - Specifying the locale of interest
Optional- Pagination specifying the number of results to be returned
limit
page
offset
Optional - Device
Optional - provider specifying provider(s) to include
Optional - excludeProvider specifying provider(s) to exclude
Optional - engine specifying seach engine(s) to use
Optional - Onlyplayable Restricts results to content that is only playable now
Optional - Specifying the search results grouping style
Concatenated
By engine (enabling client applications to show results from selected sources (can be multiple not just singular) in a single strip returned by Search Facade, so that I can show content available on different platforms)
Where there are multiple configured provider data sources, the searches execute concurrently across each provider.
Search Façade API – Response
Where there are multiple configured provider data sources Search Façade ensures that the searches are executed concurrently.
Irrespective of the different underlying search engine data sources, Search Façade ensures the delivery of the response in a uniform generic data structure.
The API supports the following in the response:
A combined row of results
If search results grouping is "Combined", or overridden in search query
A row of results per provider
If search results grouping is "Split", or overridden in search query
A generic data structure that provides the client with enough information to display the results and / or request further information for enrichment
Data structure is consistent between the NAGRAVISION internal search facility and any external search provision
Search facade can return many types of results:
Generic
Channel
Programme
Series
Season
STCU
LTCU
VoD
In the case of BTV (live), content can migrate through a number of phases: Programme → STCU → LTCU
In some cases, these phases may overlap (e.g., LTCU and STCU validity overlap). In cases like this, where both content types are available and valid, and a return type is not specified in the request, Search Façade will only return the LTCU content (instead of returning multiple results for the same content).
Example
Request
http://<hostname>/search/v1/search?q=star&limit=2
Response Status: 200
{
"NAGRA": [
{
"id": "GLOBAL_ND0000003436_Series",
"title": "Starman",
"type": "series",
"locale": "en_GB",
"source": "NAGRA",
"description": "serie"
},
{
"id": "GLOBAL_ND0000003435_Series",
"title": "Starman",
"type": "series",
"locale": "en_GB",
"source": "NAGRA",
"description": "serie"
}
]
}