-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Provide way of defining configuration for the pipeline #15921
Comments
[Search community meeting triage]: @martin-gaievski -- Ingest pipelines have the Would that level of reuse address your needs? Or do we need more of a semi-configured template? |
I was thinking of a generic pipeline template that can have blocks of related processors configured for certain user cases.
It can have simpler alternative of processor dependencies configured programmatically. To address pipeline configuration from my example we can do following:
with such implementation we can completely skip configuration of the dependent processor and have only main one, in my example only "normalization-processor" and response_processors that does explain will be added programmatically:
@msfroh let me know if such approach makes sense, I can start PR then. |
Is your feature request related to a problem? Please describe
If feature or custom workflow requires certain configuration of the pipeline it has to be done manually. Those additional steps may lead to issues: some steps can be missing or configuration may have errors. Another issue may come from lack of awareness or knowledge: customer not being aware of additional pipeline configuration.
Describe the solution you'd like
Template of the default pipeline configuration that is created by the system itself and is based on information provided by developer/engineer together with the code of new feature.
Related component
Search
Describe alternatives you've considered
Simplified version of the solution may be: a dependency between processors. If one processor depends on another processor, then that foundational/child processor is added to the pipeline configuration (or just executed) by the system. Such "depends on" relation can be part of the processor registration.
Example:
Can be extension for Factory class
it already accepts the map of processor factories
final Map<String, Processor.Factory<SearchPhaseResultsProcessor>> processorFactories
, but it can only return one instance of the Processor class. Factory can return collection of the processors depending on what it needs.Additional context
Example of such use can would be search flow with a search pipeline, with existing SearchPhaseResultsProcessor that requires another Response processor to finalize its results.
Today we have to tell user to configure a pipeline in a certain way, something like following example:
It can be even more problematic if user already has a pipeline with one processor.
This is applicable to ingest pipelines as well.
The text was updated successfully, but these errors were encountered: