Sì, certo. C'è qualcosa chiamato hash table basati su disco. Generate chiavi che corrispondono a una posizione fisica nel disco.
La risposta accettata in questa domanda SO indica una possibile implementazione.
Suggerirei comunque di utilizzare un SQLite dabatase . Carica i dati e crea un indice.
Quando si utilizza la colonna indicizzata per le ricerche, non si effettua una ricerca nella tabella. Una rapida ricerca basata su hash o b-tree viene eseguita sull'indice (che è ordinato). Quindi l'indice punta direttamente alla riga nella tabella. Probabilmente SQLite usa una funzione di hash anche per questo, come la maggior parte degli RDBMS.
SQLite non richiede il daemon del database in esecuzione, solo il binario SQLite o una libreria per il linguaggio di programmazione prescelto.