Použijte dedikovaný vyhledávací engine — Elasticsearch/OpenSearch postavený na invertovaném indexu — plněný ze zdrojové DB přes CDC a index shardujte kvůli škálování. Vaše primární databáze (Postgres/MySQL) neumí relevance-ranked textové vyhledávání nad stovkami milionů řádků; LIKE '%term%' skenuje každý řádek. Vyhledávací engine problém invertuje.
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
