The core component of a PuppyIR based application is a search service. A search service contains a variety of individual components that, when combined together, allow for searching and retrieving results from a defined search engine. These search services are stored and managed by a service manager. The diagram below shows the structure of a search service from its owner, the service manager, to all the individual components contained within the search service.
The roles of the components are as follows:
Within a search service there are two pipe structures: the Query and Result pipelines. These handle, respectively, the processing of a users query and the processing of the results of a query. The diagram below shows the basic flow between a user issuing a query and their results being displayed.
Within each of these pipelines there are filters and modifiers. Filters are executed first and then, following this, the modifiers are executed. The distinction between a filter and a modifier is as follows:
There are many different filters and modifiers available for both of these pipelines, please consult the PuppyIR API Reference page for details of what is available.
Referring to the Pipelines diagram above, a search service is passed a query in the ‘Query’ model format and returns results in the ‘Response’ model format. Both of these formats are implementations of the OpenSearch specification; for more details, see the links below: