<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ingest Designer Guide on Lucille</title><link>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/</link><description>Recent content in Ingest Designer Guide on Lucille</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 09 Jun 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>Writing a Config</title><link>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/writing-a-config/</link><pubDate>Mon, 09 Jun 2025 00:00:00 +0000</pubDate><guid>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/writing-a-config/</guid><description>&lt;p&gt;When you run Lucille, you provide a path to a configuration file that defines your entire ingest: which sources to read from, which pipelines to apply, and where to send the results. Configuration files use HOCON, a superset of JSON.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quick references:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kmwtechnology/lucille/blob/main/lucille-examples/lucille-s3-ingest-example/conf/s3-opensearch.conf"&gt;s3-opensearch.conf&lt;/a&gt; — A simple, runnable example that ingests files from S3 into OpenSearch.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kmwtechnology/lucille/blob/main/application-example.conf"&gt;application-example.conf&lt;/a&gt; — A comprehensive, annotated illustration of every top-level property and block that a Lucille config can contain (worker, publisher, kafka, indexer, etc.), excluding the implementation-specific parameters of individual stages, connectors, and indexers. Use this as a reference when you need to know what options exist and what they do. Note: this file is a reference document, not a tested runnable config.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/lightbend/config"&gt;lightbend/config&lt;/a&gt; — The upstream documentation for HOCON syntax and the Typesafe Config library that Lucille uses to parse configs. Consult this when you need the definitive rules on substitution syntax, include semantics, value concatenation, or other HOCON language features beyond what this guide covers.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="required-elements"&gt;Required Elements&lt;/h2&gt;
&lt;p&gt;A complete config file must contain three elements:&lt;/p&gt;</description></item><item><title>Defining Pipelines</title><link>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/defining-pipelines/</link><pubDate>Mon, 09 Jun 2025 00:00:00 +0000</pubDate><guid>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/defining-pipelines/</guid><description>&lt;h2 id="defining-a-pipeline"&gt;Defining a Pipeline&lt;/h2&gt;
&lt;p&gt;Pipelines are defined in the &lt;code&gt;pipelines&lt;/code&gt; list in your config file. Each pipeline requires a &lt;code&gt;name&lt;/code&gt; and a &lt;code&gt;stages&lt;/code&gt; list:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-hocon" data-lang="hocon"&gt;pipelines: [
 {
 name: &amp;#34;my-pipeline&amp;#34;
 stages: [
 {
 class: &amp;#34;com.kmwllc.lucille.stage.RenameFields&amp;#34;
 fieldMapping: { old_name: new_name }
 },
 {
 class: &amp;#34;com.kmwllc.lucille.stage.TrimWhitespace&amp;#34;
 fields: [&amp;#34;title&amp;#34;, &amp;#34;description&amp;#34;]
 }
 ]
 }
]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Stages execute in the order they are listed. Each Stage receives the Document as mutated by all previous Stages.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="connecting-a-connector-to-a-pipeline"&gt;Connecting a Connector to a Pipeline&lt;/h2&gt;
&lt;p&gt;Each Connector specifies which pipeline will process its output via the &lt;code&gt;pipeline&lt;/code&gt; field:&lt;/p&gt;</description></item><item><title>Control Flow</title><link>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/control-flow/</link><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><guid>https://kmwtechnology.github.io/lucille/docs-0.9.0/reference/control-flow/</guid><description>&lt;p&gt;This page is relevant to both &lt;strong&gt;ingest designers&lt;/strong&gt; (working in config only) and &lt;strong&gt;component developers&lt;/strong&gt; (writing Java stage and connector code). Each section identifies which approach applies to you.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="conditional-stage-execution"&gt;Conditional Stage Execution&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Config&lt;/strong&gt; | &lt;strong&gt;When to use:&lt;/strong&gt; You want a stage to run only on documents that have a particular field, or a particular value in a field. For example, only run an embedding stage on documents where &lt;code&gt;content_type&lt;/code&gt; is &lt;code&gt;&amp;quot;article&amp;quot;&lt;/code&gt;, or only run a cleanup stage on documents that have a &lt;code&gt;raw_html&lt;/code&gt; field.&lt;/p&gt;</description></item></channel></rss>