opensearchweaviate

OpenSearch Saved My Sanity (My Honest Take)

2 min read

How I Got Here

I had a use case, I want to vectorize content and provide an API that would vector search. After checking out lot of vector DBs, went with Weaviate.

I went with Weaviate first.

The Weaviate Struggle

Weaviate rocks, I really learnt how embeddings are stored in the DB, how to design the other metadata schema, how to search the vector DBs. Creating schema and filtering the search based on the metadata properties was very fun NGL. The problem is, it is taking so much time to search!

Another Problem

I needed regular text search for exact matches and document search. I needed to store markdown and provide the option to search on it.

OpenSearch Changed Everything

I was told OpenSearch could do vector search too. Man, The speed difference. Same queries that took 3 seconds in Weaviate were running in under 1s. Some even faster.

Why It Actually Works Better

The killer feature? I can do both searches in one go. User types "Redis caching strategies" and gets:

  • Exact matches for "Redis"
  • Semantic matches for caching concepts
  • All ranked together

No more juggling two systems. No more trying to merge results from different systems.

The Dashboard Thing

This might sound dumb, but having OpenSearch Dashboards made a huge difference. I could immediately see the data and create indices the way I want.

Real Performance Numbers

Before (Weaviate):

  • Average query: 2.1 seconds

After (OpenSearch):

  • Average query: ~600ms

Same data, same embeddings, completely different experience.

The Setup Was Easy

Index setup was straight, No spaghetti code, it literally feels like JSON. I was able to use it in both my Java and FastAPI application.

The query syntax made sense too - just combine regular search with KNN in a bool query.

Would I Switch Back?

No.

I've got one system handling everything, familiar tooling, better performance.

Sometimes the boring choice is the right choice.

The Takeaway

If you're building something that needs both traditional and semantic search, seriously consider OpenSearch. Especially if you're already comfortable with Elasticsearch.

The performance boost alone made it worth the switch for me.