When it comes to moving search platforms, there can be a lot of considerations to work through. Moving from the licenced Elasticsearch to the open source licenced OpenSearch can especially be tricky. In this article, I’ll cover the 5 considerations that I think are either the most essential, or the most overlooked. That way, you can learn from this experience and research and use it to help you in your own Elasticsearch to OpenSearch migration.

1. Evaluate plugin compatibility across Elasticsearch to OpenSearch

One of the first things you’ll have to start researching is plugins; not just making sure first-party plugins are compatible but making sure that any third-party plugins you use both exist and are compatible with your OpenSearch cluster. This can be time consuming but making sure your plugins are covered ensures you’ll have similar feature sets between your Elasticsearch and OpenSearch clusters.

Before you begin your migration, you’ll want to know what plugins you need, and what their equivalents are in the OpenSearch stack. You’ll also want to note any plugin functionality that doesn’t transfer over; this will affect other steps in your migration process (see #3 specifically).

2. Understand OpenSearch limitations

These are relatively minor and scarce, but there are a few limitations OpenSearch has that can cause headaches if not prepared for. For example, OpenSearch has a different, usually lower, limit to the number of nested objects that you can have in a document. This could affect not just API use but applications that use the OpenSearch cluster (see #3) and plugins that interact with the cluster (see #1).

There is a list of some of these limitations (those relating to the SQL plugin) in the OpenSearch documentation; you should also reference the migration guide’s section on limitations while creating your migration plans (see #2).

3. Prepare to modify applications interfacing with Elasticsearch

Applications that interact with data from your Elasticsearch cluster(s) may need to be modified to fit your new OpenSearch cluster(s). This is due to API differences in both OpenSearch and any third-party plugins you may be using. You’ll want to do an audit of applications using your clusters and be prepared to make changes. For instance, the official client libraries for ElasticSearch and OpenSearch are different enough that you will probably have to re-write at least some client-side code as well as migrating your data.

4. Create and follow a detailed migration plan

Having a migration plan should be central to any project involving migrating Elasticsearch to OpenSearch. A great place to start is in the OpenSearch documentation: there’s an entire page on migrations you can use to start your plan. It covers topics like upgrade paths for different versions of Elasticsearch, etc. Having a migration plan will help mitigate any issues you might have while migrating, especially when migrating large clusters or across multiple versions of Elasticsearch. You can find more about planning migrations in the OpenSearch documentation or you can speak with one of our OpenSearch experts for a free consultation.

That being said, the best way to ease your migration path is in our next point; the sooner you migrate, the better.

5. Migrate early to minimize future challenges

You can see how all the previous points fold into this one; when you make your plan, you’ll notice the divergence of Elasticsearch and OpenSearch as time has passed, and based on roadmaps, that gap is going to not only get larger, but harder to cross. This is because each program is focusing on different features that will then be written by different teams of people; API and feature divergence are inevitable.

Take version compatibility between OpenSearch and ElasticSearch as it is now as an example; if you’re on a pre-OpenSearch-fork (7.10) version of ElasticSearch, your migration path and plan will look different than if you are on a post-fork version of ElasticSearch; you may find you’ll need multiple steps to migrate if your version is older, but real application and API headaches if you’re on the bleeding edge.

With all these (and more) to consider, a migration from Elasticsearch to OpenSearch is a significant undertaking, but with the right preparation, it can be a rewarding process. By evaluating plugin compatibility, understanding OpenSearch’s limitations, adjusting your applications, crafting a detailed migration plan, and starting early, you can avoid common pitfalls and set yourself up for success. Don’t wait until the gap between the platforms widens further as the projects continue to diverge in API and feature set.

Looking to learn more? Read about migrating with NetApp Instaclustr and check out the OpenSearch 3.0 features that are waiting for you.