Ну в среднем 5-10гб
Часто меняются?
Файлов много, так ещё и дополняться могут
Есть ли какой-то способ индексации, или в них рандомные данные?
А сам поиск какого рода? На точное совпадение? На вхождение? Нужно ли учитывать разные особенности типа поиска строк, неточного поиска?
На точное совпадение
Если файлы не изменяются - раздели их по 256-1024мб и храни в виде массива с индексом в какой-нибудь папке
Ну 100+ файлов не горю желанием делить
Автоматически.
Варианты: - оптимизировать кодировку для ускорения поиска, в идеале тебе бы, чтобы срабатывал инвариантный поиск, если применимо - если искать каждый раз случайные вещи и файлы меняются часто, то можно просто считывать файл и искать в памяти indexof по спану. Можно memory mapped файлы посмотреть, чтобы работать непрерывно. Сработает только если приемлемо для поиска грузить все в память и искать, упираться будет в дисковую подсистему и объем свободной памяти - если искать чаще, чем меняется, можно посмотреть в сторону индексирования. Например, один из вариантов это DAWG
InxedOf в спане будет быстрее низкоуровневой байтоебил?!?!?!?
Зависит от кодировки, если на векторизованный вариант попадешь, то да
Да, в целом поиск получается в 1ТБ+ данных, просто грузить и искать - нежизнеспособно, так что надо в сторону индексов или БД смотреть
А каким образом надо этот индекс потреблять? И что за файлы такие?
Обсуждают сегодня