Uporabite namenski iskalni pogon — Elasticsearch/OpenSearch, zgrajen na obrnjenem indeksu (inverted index) — napajan iz vaše izvorne DB prek CDC, in shardajte indeks za obseg. Vaša primarna podatkovna baza (Postgres/MySQL) ne zmore relevančno rangiranega besedilnega iskanja čez sto milijonov vrstic; LIKE '%term%' skenira vsako vrstico. Iskalni pogon obrne problem.
Source DB ─▶ CDC (Debezium) ─▶ Kafka ─▶ Indexer ─▶ Elasticsearch/OpenSearch
(Postgres) (change stream) ├─ Shard 0 (inverted index) + replicas
├─ Shard 1
Query ─▶ Coordinator ─▶ scatter to shards ─▶ gather ─┴─ Shard N ── ranked by BM25
