გამოიყენეთ გამოყოფილი search engine — Elasticsearch/OpenSearch, აგებული inverted index-ზე — რომელიც თქვენი source DB-იდან CDC-ით იკვებება, და shard გააკეთეთ index-ს მასშტაბისთვის. თქვენს primary database-ს (Postgres/MySQL) არ შეუძლია relevance-ranked ტექსტური ძებნა ასეულობით მილიონ მწკრივზე; LIKE '%term%' ყოველ მწკრივს სკანირებს. search engine პრობლემას აბრუნებს.
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
