Как хранить и искать в 10 миллиардах записей?
Умный ответ в стиле «отстаньте» — hadoop.

Если же думать как решить — если проблем с производительностью нет и 5Тб одним файлом устраивает, то надо просто использовать деревья для хранения индекса и обновлять индексы только на порцию пришедших данных.

Вот простейший пример индекса: ключ превращем в хеш (не важно как, либо 1-в-1, либо md5 от него и младшие биты), после этого делаем каталоги с именем первого байта хеша, в нём каталоги с вторым байтом и т.д., до тех пор, пока не остаётся что-то очень компактное. В момент добавления данных при их индексации просто обновляется маленькая порция тех кусочков индекса, которые поменялись. 

Это решение «на коленке», если что-то крутое — смотрите в сторону специализированных баз данных.
Посмотрите в сторону LucidWorks Big Data. Сам я правда с ней не работал, но с LucidWorks Search работаю и пока проблем нет (~15гб, 10кк документов).