Делается просто: на PHP без базы данных.
И, хотя, это и не совсем правильно: не использовать БД, но работает достаточно быстро для навигации поиска по файлу вообще без индексации его содержимого (правда, с обязательной изначальной сортировкой по артикулу!).
По шагам:
1. Все строки позиций артикула должны быть отсортированными по возрастанию номера артикула.
2. Нужно указать смещение в скрипте-парсере. Т.е. начинаем не с 0(или 1), а с цифры 12345, например.
3. При поиске - сразу переходим через смещение на середину файла 1/2 (от размера файла) и читаем первую строку с артикулом. Если он меньше, переходим на смещение 3/4, иначе - на 1/4.
Так мы находим нужную нам строку (с заданным артикулом) через половинное деление.
4. Также, можно заранее создать индекс-таблицу: номера артикулов и смещение от начала по количеству байт. Вдобавок, для скорости, можно создать глоссарий со смещениями по конкретным данным.
Использовать функции работы с файлами и
fseek() для навигации указателя по смещениям.