{hr.work}

Flat search across 10 years of financial news

Nordic Analytics, fintech platform for traders and analysts

A topic timeline built from about 25 million articles now comes back in under five seconds. It used to take about a minute.

~1 min → <5 stopic timeline response
~25Mfinancial-news articles searched
10+ yrscoverage in each timeline
Exact searchall articles scored per timeline

01A minute per timeline

The platform builds a timeline for any topic from more than ten years of financial news, hour by hour or day by day. Every article has to be scored against the topic, because every period needs its own count. On Elasticsearch, one timeline took about a minute.

02Make it usable next to a live market

Make timelines fast enough to use next to a live market. There was no spec beyond that.

03One flat index per year, all scanned at once

Financial-news search architecture A topic query enters FastAPI and Ray Serve, fans out through Ray to flat FAISS indexes held in memory by one actor per year. Exact scores merge with Elasticsearch metadata and Polars builds the timeline. Write-ahead logging, atomic saves, hot reload and health checks support index updates. PARALLEL EXACT SEARCH ยท PRODUCTION QUERY PATH API BOUNDARY RAY COMPUTE EXACT SEARCH RESULT ASSEMBLY Topic queryFastAPI / Ray Serve Ray fan-outone actor per yearY1Y2Y3N Score mergeevery article scored Polars timelinegrouped by time Elasticsearch metadata Topic timeline INDEX UPDATE AND RECOVERY CONTROLS Write-ahead log Atomic saves Hot reload Health checks Exact flat search across every year, in parallel
Each year shard is a flat FAISS index kept in memory by its own Ray actor.

04Under five seconds, in production

A timeline went from about a minute to under five seconds, and it's running in production. The same search powers a chat on the platform's price chart: pick a time range, ask what moved the price, and get an answer in under five seconds.