вы можете фильтровать во время чтения, хотя может быть медленнее. Может быть, индексировать его в кусках с временными индексными файлами (я не использовал apache, поэтому я не знаю, как это делает apache).
Сохранить элементы первой строки на карте для быстрого поиска (заголовок строка -> для имени и индекса соответственно), затем перебирать каждую строку, разбить ее и проверить, соответствует ли индекс ключа X вашему фильтру. Сохраните эту строку и перерыв или продолжение для других строк.