# ES Ingest plugin without version pinning?

**URL:** <https://discuss.elastic.co/t/es-ingest-plugin-without-version-pinning/372713>\
**Category:** Elastic Search\
**Created:** [January 2, 2025, 3:42pm UTC](https://discuss.elastic.co/t/es-ingest-plugin-without-version-pinning/372713 "2025-01-02T15:42:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Niels\_Basjes](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/niels_basjes/32/109091_2.png) [@Niels\_Basjes](https://discuss.elastic.co/u/Niels_Basjes)\
**Post date:** [January 2, 2025, 3:42pm UTC](https://discuss.elastic.co/t/es-ingest-plugin-without-version-pinning/372713/1 "2025-01-02T15:42:25Z")

</div>

Long ago I created an ES Ingest plugin (Details here: [Elastic Search | Yauaa - Yet Another UserAgent Analyzer](https://yauaa.basjes.nl/udf/elastic-search/) ) which takes a one or more input fields (in this case HTTP request headers), does some analysis on them and then creates a few new resulting fields (in this case the type of device, name of the browser, etc).

So all my plugin needs is a set of named text values and then it creates an extra set of named fields with text values. (Code is [here](https://github.com/nielsbasjes/yauaa/blob/b41092f6098194dd64305b3eaea3f285aaea7d30/udfs/elastic/elasticsearch-8/src/main/java/org/elasticsearch/plugin/ingest/yauaa/YauaaProcessor.java#L61-L77))

A big problem is the pinning to the exact ES version of this plugin.

Last week I noticed this page about the "Stable plugin API" which says to solve the problem that the ES version of the plugin must exactly match the ES version on which it is run.

> **[Creating text analysis plugins with the stable plugin API | Elasticsearch...](https://www.elastic.co/guide/en/elasticsearch/plugins/current/creating-stable-plugins.html)**

I have only been able to find is the AnalyzerFactory that allows the creation of a (Lucene) Analyzer which (in my understanding) only supports analyzing a single field at a time (my usecase needs multiple fields combined).

As far as I can tell this stable api is not suitable for my usecase.  
Am I correct in that?

Or is there a different way to make an ingest plugin for ES in my usecase that does not pin to the exact ES version?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 30, 2025, 3:43pm UTC](https://discuss.elastic.co/t/es-ingest-plugin-without-version-pinning/372713/2 "2025-01-30T15:43:22Z")

</div>

Closed on January 30, 2025, 3:43pm UTC

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
