Такой спор с мозговыносящими технологиями, аж помутнело всё.
Индекс это разбитие чего-то на группы без "функции активации меняющей данные" (иначе при поиске придется для каждой записи её снова прогнать). Идея в том, чтобы из поисковых условий получить возможные имена групп не прибегая к обходу самой "таблицы".
Простейший способ - взять пару букв того, пару букв этого и этого, слепить вместе. Получится группа. Группу (все записи разделенные переносом строки) положить в файл с именем "(парубукв_source)(парубукв_id)(парубукв_subid).txt". На сами группы запомнить по принципу "группа такая - знач файл такой". В вышеуказанном случае имя файла именно это и делает.
Во время поиска в твоем случае условий "больше" "меньше" нет совсем, только равно. Знач прям из поисковой команды выдергиваем чему равно, лепим вместе, получаем одну или более групп, ищем в файлах групп.
И да, нет смысла делать индекс на 60 букв, потому что айдишник уникален. Получится 50 миллиардов записей и из них 50 миллиардов групп. Это не имеет смысла. Смысл в том чтобы 50 миллиардов оказались в 10 тысячах групп, и при поиске пришлось просмотреть не 50 миллиардов, а пару групп. Учитывая что ты работаешь с айдишниками, то скорее всего ты будешь вязать одну запись, то есть группа вообще будет одна.
Если это будет массовая привязка то условие будет через ИЛИ соединено, и вот для каждого условия группа будет или несколько. Получаем массив групп. Проходим по ним, в этих файлах ищем то что искали, на остальные файлы забиваем.
"Переиндексирование" - по одной или всё вместе. По одной - находим в группах, удаляем из групп. Все вместе - создаем соседнюю папку для index_2, делаем, удаляем старую папку, переименовываем новую на место старой. Так даже в elastic делается, там "переиндексирование" - это создание нового индекса и снос старого.
Чем более твои айдишники уникальны, тем сложнее это группировать, тем меньше смысла от индекса. Возвращаемся к самой задаче. 200 тысяч в день записей появляется. Это какая машина в день сама столько делает? Если машин несколько, то машина (её номер) - тоже группа, уменьшит уже на порядок, но скорее всего нет, т.к. в условии поиска номер машины не будет важен. Если одна машина всё это делает, можно критерий какой-то добавить, а хоть бы "день когда добавилось", или "тип записи" (это всё имеет смысл, если данные все настолько уникальные, что прям их никак не сгруппировать). Если критерий не добавить вообще никак - знач как описал ранее - лепи пару букв из тех полей, по которым будешь искать.
ps. есть вероятность, что "не используйте базу данных" имеется в виду "code first" - напишите на объектах, чтобы мы потом сами бд выбрали, а не сделайте "без бд".