Steps are a unit of work in the pipeline flow that is responsible to perform the individual tasks listed above.
Steps are made up of several components:
Constants - are used to configure steps. They are fixed and can't be changed at query time.
Parameters - Params are key-value pairs that are initialized with the request and are passed from step to step. Each step has the ability to add or modify params, passing them on to subsequent steps. Once the pipeline has been executed, the modified params become available as output values of the pipeline.
Conditions - Each step can be conditionally executed based on the input values. Conditions are boolean expressions that can be defined using operators (AND/OR and =,~,>,<,!=, etc) to evaluate the pipeline param values. If the condition is satisfied, then the step will execute, otherwise, it is bypassed.
Tip: If you want a step to execute when a variable does not exist then wrap your condition in quotes i.e. condition:"!myVariable" which will force the special character ! to be interpreted as a string
Pre-steps and Post-steps
Pre- and Post- steps split the pipeline into two parts. One that runs before the request is sent to the search index and another that runs afterward.
Pre and Post-steps in query pipelines
When running a query, the pipeline post-steps have access to the result-set. This makes it possible to act on the result before sending them back to the caller.
Pre and Post-steps in record pipelines
For indexing operations, pre-steps are used to update and augment the record before it is stored in the index. The pipeline post-steps only run when creating new records. They do not execute when updating records.