Használj egy dedikált keresőmotort — Elasticsearch/OpenSearch inverted indexre épülve — a forrás DB-dből CDC-n keresztül táplálva, és shardeld az indexet a méretezéshez. Az elsődleges adatbázisod (Postgres/MySQL) nem tud relevancia-rangsorolt szöveges keresést végezni több százmillió sor felett; egy LIKE '%term%' minden sort szkennel. Egy keresőmotor megfordítja a problémát.
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
