FTS-движок для бинарных данных
От: zx zpectrum  
Дата: 07.09.24 11:21
Оценка:
Дано: антивирусоподобная система, хранящая в себе до хрена и больше бинарных сигнатур.
Требуется: искать сигнатуры по совпадению с бинарной подпоследовательностью за асимптотическое время меньшее, чем O(N).

Для текстовых данных существует великое множество систем полнотекстового поиска, и казалось бы, бери да переводи бинарщину в hex или base64, да пользуйся всеми этими Сфинксами, Эластиками, Мантикорами, или Постгресовским FTS. Однако, помимо неизбежных накладных расходов, есть еще вот какой нюанс: FTS кушают не просто тексты, а желательно тексты на человеческих языках: все эти стемминги, лемматизаторы, нормализаторы как бы намекают, что на "нечеловеческом" материале их производительность неизбежно выродится в линейный поиск.

Существует ли FTS-подомбые движки, заточенные под бинарные данные?

PS. Внутренний голос мне подсказывает, что с этим, скорее всего, на ура справится Постгрес, достаточно лишь правильно его приготовить. Например, индексировать N-грамы, а не корни слов. Если кто-либо из присутствующих занимался чем-то подобным, буду очень благодарен ссылочкам на книги и статьи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.