English

Fast Prefix Search in Little Space, with Applications

Data Structures and Algorithms 2018-04-16 v1

Abstract

It has been shown in the indexing literature that there is an essential difference between prefix/range searches on the one hand, and predecessor/rank searches on the other hand, in that the former provably allows faster query resolution. Traditionally, prefix search is solved by data structures that are also dictionaries---they actually contain the strings in SS. For very large collections stored in slow-access memory, we propose much more compact data structures that support \emph{weak} prefix searches---they return the ranks of matching strings provided that \emph{some} string in SS starts with the given prefix. In fact, we show that our most space-efficient data structure is asymptotically space-optimal. Previously, data structures such as String B-trees (and more complicated cache-oblivious string data structures) have implicitly supported weak prefix queries, but they all have query time that grows logarithmically with the size of the string collection. In contrast, our data structures are simple, naturally cache-efficient, and have query time that depends only on the length of the prefix, all the way down to constant query time for strings that fit in one machine word. We give several applications of weak prefix searches, including exact prefix counting and approximate counting of tuples matching conjunctive prefix conditions.

Keywords

Cite

@article{arxiv.1804.04720,
  title  = {Fast Prefix Search in Little Space, with Applications},
  author = {Djamal Belazzougui and Paolo Boldi and Rasmus Pagh and Sebastiano Vigna},
  journal= {arXiv preprint arXiv:1804.04720},
  year   = {2018}
}

Comments

Presented at the 18th Annual European Symposium on Algorithms (ESA), Liverpool (UK), September 6-8, 2010

R2 v1 2026-06-23T01:22:18.108Z