T
- index stage configuration classpublic interface IndexStage<T extends IndexStageConfig>
@Stage(type = "myStage", configClass = MyStageConfig.class) public class MyStage implements IndexStage<MyStageConfig> { @Override public void init(MyStageConfig config, Fusion fusion) { // stage initialization logic } @Override public Document process(Document document, Context context) { // document processing logic }Implementations of this class must be stateless. Fusion can create and use multiple index stage instances at the same time.
Modifier and Type | Method and Description |
---|---|
void |
init(T config,
Fusion fusion)
Stage initialization callback.
|
default Document |
process(Document document,
Context context)
Process single document.
|
default void |
process(Document document,
Context context,
java.util.function.Consumer<Document> output)
Process single document.
|
void init(T config, Fusion fusion)
IndexStageConfig
instance. Additionally Fusion
interface instance will be passed to allow calling Fusion API from the index stage.config
- index pipeline stage configurationfusion
- Fusion API instancedefault Document process(Document document, Context context)
Document
instance that results in either 1 or 0
documents being emitted. Return null to drop document from the pipeline.
This method is a convenience and will not be called if process(Document, Context, Consumer)
implementation is overridden. Default implementation is NOOP if not implemented.
Note that this method implementation must be thread-safe as it can be invoked concurrently by multiple threads.document
- document going through index pipelinecontext
- index pipeline contextdefault void process(Document document, Context context, java.util.function.Consumer<Document> output)
Document
instance that results in arbitrary
number of documents being emitted. Call output.accept(document)
for each document you want to
emit as a result of processing. Note that after sending a document instance to the output, its state
may be changed by subsequent stages, therefore it is strongly advised to discard the document instance
immediately after emitting it. Passing null
to output
consumer will cause
IllegalArgumentException
.
Overriding the default implementation of this method will result in process(Document, Context)
to
not be called. Default implementation is to call process(Document, Context)
method.
Note that this method implementation must be thread-safe as it can be invoked concurrently by multiple threads.document
- document going through index pipelinecontext
- index pipeline contextoutput
- consumer for documents emitted as the result of processing