Class EmbeddingOutputBuilder

java.lang.Object
org.elasticsearch.xpack.esql.inference.embedding.EmbeddingOutputBuilder
All Implemented Interfaces:
InferenceOperator.OutputBuilder

public class EmbeddingOutputBuilder extends Object implements InferenceOperator.OutputBuilder
Builds output pages for embedding inference operations.

Converts DenseEmbeddingResults from inference responses into a FloatBlock that is appended to the input page. Each embedding vector is stored as a multi-valued position containing the vector components.

This base class is used by both text embedding and typed embedding operations.

  • Constructor Details

    • EmbeddingOutputBuilder

      public EmbeddingOutputBuilder(BlockFactory blockFactory)
  • Method Details

    • buildOutputPage

      public Page buildOutputPage(Page inputPage, List<InferenceOperator.BulkInferenceResponseItem> responses)
      Builds the output page by converting inference responses into a FloatBlock.

      The position value counts in each response determine how output values are distributed across rows:

      • positionValueCounts[i] = 0: produces a null value for row i (no embedding)
      • positionValueCounts[i] = 1: produces one embedding vector for row i
      Each embedding vector is stored as a multi-valued entry in the output block.
      Specified by:
      buildOutputPage in interface InferenceOperator.OutputBuilder
      Parameters:
      inputPage - The original input page
      responses - The ordered list of inference responses corresponding to the input rows
      Returns:
      A new page with the embedding vectors appended as an additional block