Eine live-Suche über eine
Query lösen zu wollen, ist sportlich. I.a. werden die Daten schon geeignet im Speicher abgelegt, z.B. in einem Baum, Trie o.ä.
Als in-memory Kopie einer Tabelle würde ich eine in-memory Tabelle empfehlen
z.B. "kbMemTable" oder ein TClientDataset.
Ich würde allerdings würde die Daten wirklich einsaugen und in einer geeigneten Struktur ablegen. Ich kann mir vorstellen, das man alles in einen String klatscht, mit geeigneten Feld/Recordtrennern und dann ein sauschnelles Pos drüber laufen lässt.
Wonach soll denn überhaupt gesucht werden?