Nutze eine dedizierte Suchmaschine - Elasticsearch/OpenSearch, aufgebaut auf einem Inverted Index - gespeist aus deiner Quell-DB über CDC, und sharde den Index für Skalierung. Deine primäre Datenbank (Postgres/MySQL) kann keine relevanz-gerankte Textsuche über hunderte Millionen Rows leisten; ein LIKE '%term%' scannt jede Row. Eine Suchmaschine kehrt das Problem um.
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
