Elasticsearch
Relevance tuning, the DSL by hand, and two 6.x → 8.x migrations that stayed online.
Near-realtime
Backend & Search Engineer · Gurugram, IN
I teach machines what people mean — not just what they type. Five years of search platforms and ranking models that stay calm at 25K requests a minute.

01 — Live · query understanding
Search sits where language meets systems, and that’s exactly where I like to live. Query understanding, ranking models, ingestion pipelines that never sleep — the result is platforms serving 25K+ requests a minute across a 10-million-product catalog that still feel personal.
Search something. Watch it think.
Type anything and it parses your words into entities, recalls candidates with BM25, then re-ranks them — every row tells you why it landed where it did.
Start typing to search 162 products.
// real BM25 + rule-based NER, in your browser · CTR/ATC are synthetic priors, not telemetry
Lexical match gets you candidates. Synonyms, attribute fit and demand signals decide who actually deserves the top slot.
02 — Experience
Four roles · one rail
03 — Skills
Depth beats breadth in search work — most of my day happens inside the first three. Everything below them is a tool I have shipped, not a tool I have read about.
Relevance tuning, the DSL by hand, and two 6.x → 8.x migrations that stayed online.
Search services that hold their nerve under load, with the hot path kept in Redis.
Rescore pipelines, feature logging, and the judgement work that decides what better means.
Search & data
Language
Backend
Infra
Anything on this page, I can walk you through in the code.
Full stack on the CV ↓04 — Lab
Right now that means one thing: giving Elasticsearch a conversation layer. An agent that holds a real connection to my cluster, understands what I’m asking in English, and does the indexing work itself.
An Elasticsearch agent that speaks plain English. Ask it a question and it plans the query, runs it against my live cluster and answers. Describe a schema and it writes the mapping and creates the index — no console, no JSON by hand.
How it connects
Writes mappings
Creates indices and field types straight on the cluster.
Answers in English
Reads back results instead of raw hit arrays.
Tool-scoped
Every cluster action is an explicit MCP tool call.
make me an index for the product catalog, descriptions should be semantically searchable
create_index · product-catalog
titletext + keyword
pricescaled_float
descriptiondense_vector[768] cosine
acknowledged: true
which categories lost the most impressions last week?
Footwear is down 18%, mostly on “running shoes”. Two of its top sellers dropped out of the first page after the last reindex.
Tools exposed
Illustrative exchange — the connector exposes search, mapping and index tools to the agent.
Experiments with XGBRanker rescore pipelines for search relevance tuning.
NER + semantic tagging to parse intent from raw search queries.
Some become production features. Some stay internal tools. Some just teach me something.
05 — Archive
Two kinds of writing: engineering notes I published as I worked things out, and papers written with a proper method section.
Engineering noteson Medium
All posts ↗Published researchpeer reviewed
2 papersHow interpretable knowledge can be pulled back out of models trained on handwritten-digit recognition.
A comparative analysis of detection and recognition pipelines for attendance automation.
On videowalkthrough
Watch on YouTube ↗YouTube · Demo
Walking through captured heap dumps in Dynatrace — reading allocation hotspots and tracing them back to the code that caused them.
Open in YouTube ↗Written to be read later, mostly by me.
06 — Elsewhere
@abhiinav.exe