- Configuring query pipeline stages
- Asynchronous query pipeline processing
- Conditional query processing
- Reference topics
- Query rewriting
- Response rewriting
- Fetch data
A query pipeline is made up of a series of query stages that process incoming search queries.
A pipeline stage definition associates a unique ID with a set of properties. These definitions are registered with the Fusion API service and stored in ZooKeeper for re-use across pipelines and search applications.
Configuring query pipeline stages
Asynchronous query pipeline processing
Query pipeline processing performance can be improved by enabling asynchronous processing for certain stages that make requests to secondary collections, external databases, and so on. The following stages support asynchronous processing:
This feature uses the fork-and-join model, where any of the stages above can create a fork on the pipeline. The parallel processes are joined again using the Merge Async Results stage at a later point in the pipeline.
Conditional query processing
Query Pipeline stages are used to modify Request objects
condition property in its configuration) that can access these objects.
For example, this condition first checks that the property
fusion-user-name is specified in the Request object, then checks for a particular value:
request.hasParam("fusion-user-name") && request.getFirstParam("fusion-user-name").equals("SuperUser");
See these reference topics for complete details about each query pipeline stage: