# \[RFC\] Search Pipelines

**URL:** <https://forum.opensearch.org/t/rfc-search-pipelines/12099>\
**Category:** Request For Comments\
**Tags:** discuss, feature-request, rfc\
**Created:** [January 13, 2023, 2:27pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099 "2023-01-13T14:27:45Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![markcohen](https://avatars.discourse-cdn.com/v4/letter/m/4bbf92/32.png) [@markcohen](https://forum.opensearch.org/u/markcohen)\
**Post date:** [January 13, 2023, 2:27pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/1 "2023-01-13T14:27:45Z")

</div>

We have an experimental release of Search Pipelines in OpenSearch 2.8 that starts at query submission and ends at result fetching. In between, we see any number of possibilities like query rewriting, analyzers, reranking, etc. that can be integrated as processors in the pipeline. We want to hear more from the community as we start to evolve the code in the repo where this issue lives into the pipeline: [[RFC] Search pipelines · Issue #80 · opensearch-project/search-processor · GitHub](https://github.com/opensearch-project/search-processor/issues/80).

If you want to go directly to the code the search pipeline plugin is here [OpenSearch/server/src/main/java/org/opensearch/search/pipeline at main · opensearch-project/OpenSearch · GitHub](https://github.com/opensearch-project/OpenSearch/tree/main/server/src/main/java/org/opensearch/search/pipeline) and the core processors are here  
[OpenSearch/modules/search-pipeline-common at main · opensearch-project/OpenSearch · GitHub](https://github.com/opensearch-project/OpenSearch/tree/main/modules/search-pipeline-common)

Looking forward to good discussion and more possibilities with this feature.

---

<div class="post-metadata">

**Author:** ![kris](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.opensearch.org/kris/32/2208_2.png) [@kris](https://forum.opensearch.org/u/kris)\
**Post date:** [February 7, 2023, 9:28pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/2 "2023-02-07T21:28:45Z")

</div>

Looks like we’ve received some input - hopefully the community continues to add useful feedback.

@markcohen - how long will the RFC be open?

---

<div class="post-metadata">

**Author:** ![markcohen](https://avatars.discourse-cdn.com/v4/letter/m/4bbf92/32.png) [@markcohen](https://forum.opensearch.org/u/markcohen)\
**Post date:** [February 24, 2023, 2:47pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/3 "2023-02-24T14:47:18Z")

</div>

I’d like to keep this open until mid-March. We are planning to build and release the initial set of features in 2.7.0 in mid-April. Also, the project is beginning to be tracked here: [[META] Search Pipelines · Issue #6278 · opensearch-project/OpenSearch · GitHub](https://github.com/opensearch-project/OpenSearch/issues/6278) for additional input/insight for the community.

---

<div class="post-metadata">

**Author:** ![markcohen](https://avatars.discourse-cdn.com/v4/letter/m/4bbf92/32.png) [@markcohen](https://forum.opensearch.org/u/markcohen)\
**Post date:** [April 11, 2023, 5:45pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/4 "2023-04-11T17:45:01Z")

</div>

@kris, the first PR was just merged into OpenSearch/main and we closed the RFC issue. If it makes sense to close out this RFC now, please go ahead.

Thanks!

---

<div class="post-metadata">

**Author:** ![kris](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.opensearch.org/kris/32/2208_2.png) [@kris](https://forum.opensearch.org/u/kris)\
**Post date:** [April 24, 2023, 11:14pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/5 "2023-04-24T23:14:20Z")

</div>

thanks @markcohen - I’ll close this thread

---

<div class="post-metadata">

**Author:** ![kris](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.opensearch.org/kris/32/2208_2.png) [@kris](https://forum.opensearch.org/u/kris)\
**Post date:** [April 24, 2023, 11:14pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/6 "2023-04-24T23:14:25Z")

</div>

Closed on April 24, 2023, 11:14pm UTC



---

<div class="post-metadata">

**Author:** ![kris](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.opensearch.org/kris/32/2208_2.png) [@kris](https://forum.opensearch.org/u/kris)\
**Post date:** [May 30, 2023, 2:42pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/7 "2023-05-30T14:42:45Z")

</div>

Opened on May 30, 2023, 2:42pm UTC



---

<div class="post-metadata">

**Author:** ![kris](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.opensearch.org/kris/32/2208_2.png) [@kris](https://forum.opensearch.org/u/kris)\
**Post date:** [May 30, 2023, 2:51pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/8 "2023-05-30T14:51:16Z")

</div>

@markcohen - opened it back up at your request

---

<div class="post-metadata">

**Author:** ![markcohen](https://avatars.discourse-cdn.com/v4/letter/m/4bbf92/32.png) [@markcohen](https://forum.opensearch.org/u/markcohen)\
**Post date:** [May 30, 2023, 3:15pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/9 "2023-05-30T15:15:34Z")

</div>

Thanks @kris. For folks interested, currently the best place to see most work happening in Search Pipelines is here: [Search Applications Vertical · GitHub](https://github.com/orgs/opensearch-project/projects/45/views/1?filterQuery=search+pipeline).

Also, [[RFC]: Search Phase Injector Processor · Issue #152 · opensearch-project/neural-search · GitHub](https://github.com/opensearch-project/neural-search/issues/152) is a great example of another phase being included in search pipelines.

There’s more we can do here and we want input/questions/PRs/issues for Search Pipelines. Documentation is coming soon.

The base plugin is a good place to start: [OpenSearch/SearchPipelinePlugin.java at 69f4ac189c83270265a0c178a642e8d0de3edd90 · opensearch-project/OpenSearch · GitHub](https://github.com/opensearch-project/OpenSearch/blob/69f4ac189c83270265a0c178a642e8d0de3edd90/server/src/main/java/org/opensearch/plugins/SearchPipelinePlugin.java#L23)

We’re targeting to close this forum post on the original search pipelines implementation by 2023-07-15.

---

<div class="post-metadata">

**Author:** ![msfroh](https://avatars.discourse-cdn.com/v4/letter/m/34f0e0/32.png) [@msfroh](https://forum.opensearch.org/u/msfroh)\
**Post date:** [June 7, 2023, 3:29pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/10 "2023-06-07T15:29:35Z")

</div>

I did a quick demo in a lightning talk at Haystack 2023. It starts around 24:30 at [Haystack US 2023 - Lightning Talks - YouTube](https://www.youtube.com/watch?v=Ddss4r1fScc).

The scripting processor that we shipped in 2.8 doesn’t work the way it did in that demo (since that was a hacky implementation that only worked with `query_string` queries).

Still, the demo (I hope) conveys the general idea of the search pipelines feature and its motivation.

---

<div class="post-metadata">

**Author:** ![markcohen](https://avatars.discourse-cdn.com/v4/letter/m/4bbf92/32.png) [@markcohen](https://forum.opensearch.org/u/markcohen)\
**Post date:** [July 13, 2023, 12:16pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/11 "2023-07-13T12:16:10Z")

</div>

We are keeping this open for ideas and input after the OpenSearch 2.9 release which includes Search Pipelines. Here are some processors on our roadmap. We would be happy to take contributions of any kind (PRs for new processors, feedback on the ones we have in the roadmap, and anything in between):

- [[Search pipeline] Support non-primitive types in request body for script request processor](https://github.com/opensearch-project/OpenSearch/issues/7757)
- [[Search pipeline] Support query context modification in script processor](https://github.com/opensearch-project/OpenSearch/issues/7758)
- [Conditional request processor](https://github.com/opensearch-project/OpenSearch/issues/6714)
- [Conditional Response Processor](https://github.com/opensearch-project/OpenSearch/issues/6715)

If you do want to create or request a new processor, please create an issue here: [Sign in to GitHub · GitHub](https://github.com/opensearch-project/OpenSearch/issues/new?assignees=&labels=enhancement%2C+untriaged%2C+Search&projects=&template=feature_request.md&title=%5BSearch%20Pipelines%20Processor%5D).

Looking forward to more ideas and discussion.

---

<div class="post-metadata">

**Author:** ![austinlee](https://avatars.discourse-cdn.com/v4/letter/a/82dd89/32.png) [@austinlee](https://forum.opensearch.org/u/austinlee)\
**Post date:** [July 22, 2023, 6:07pm UTC](https://forum.opensearch.org/t/rfc-search-pipelines/12099/12 "2023-07-22T18:07:27Z")

</div>

@markcohen what about [Processors that modify both request and response ("bracket processor") · Issue #6722 · opensearch-project/OpenSearch · GitHub](https://github.com/opensearch-project/OpenSearch/issues/6722)?
