Máquinas de Estado Finito como Estruturas de Dados: Indexando Bilhões de URLs

2025-08-14

Este artigo explora o uso de máquinas de estado finito (FSMs) como estruturas de dados para representar conjuntos e mapas ordenados, mostrando a eficiência do crate fst do Rust para construir índices. Ele aprofunda a construção de FSMs, cobrindo a construção de Trie e FSA, e demonstra a indexação de mais de 1,6 bilhão de URLs do arquivo Common Crawl de julho de 2015. Técnicas como mapeamento de memória, interseção de autômatos com expressões regulares, busca fuzzy com distância de Levenshtein e operações de conjunto em streaming também são discutidas. O autor constrói e compara benchmarks de FSTs contra outros esquemas de compressão (gzip, xz) em vários conjuntos de dados de tamanhos e características variados.