Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
119 tokens/sec
GPT-4o
56 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
6 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Full-text and Keyword Indexes for String Searching (1508.06610v1)

Published 26 Aug 2015 in cs.DS

Abstract: In this work, we present a literature review for full-text and keyword indexes as well as our contributions (which are mostly practice-oriented). The first contribution is the FM-bloated index, which is a modification of the well-known FM-index (a compressed, full-text index) that trades space for speed. In our approach, the count table and the occurrence lists store information about selected $q$-grams in addition to the individual characters. Two variants are described, namely one using $O(n \log2 n)$ bits of space with $O(m + \log m \log \log n)$ average query time, and one with linear space and $O(m \log \log n)$ average query time, where $n$ is the input text length and $m$ is the pattern length. We experimentally show that a significant speedup can be achieved by operating on $q$-grams (albeit at the cost of very high space requirements, hence the name "bloated"). In the category of keyword indexes we present the so-called split index, which can efficiently solve the $k$-mismatches problem, especially for 1 error. Our implementation in the C++ language is focused mostly on data compaction, which is beneficial for the search speed (by being cache friendly). We compare our solution with other algorithms and we show that it is faster when the Hamming distance is used. Query times in the order of 1 microsecond were reported for one mismatch for a few-megabyte natural language dictionary on a medium-end PC. A minor contribution includes string sketches which aim to speed up approximate string comparison at the cost of additional space ($O(1)$ per string). They can be used in the context of keyword indexes in order to deduce that two strings differ by at least $k$ mismatches with the use of fast bitwise operations rather than an explicit verification.

User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (1)
Citations (2)

Summary

We haven't generated a summary for this paper yet.