Succinct data structures in information retrieval: Theory and practice