1. A computer-implemented method of performing a keyword search on a database, comprising: receiving a request including a search string for searching the database, wherein data in the database is represented by one or more tokenized data segments, each tokenized data segment being associated with a different set of columns included in the database and specifying all unique values in the set of columns; parsing the search string to identify a plurality of keywords included in the search string; generating a plurality of string permutations based on the received search string, each string permutation being database agnostic and including at least a subset of the plurality of keywords included in the received search string; for each string permutation: launching an asynchronous thread for executing a search on the one or more compressed tokenized data segments based on the string permutation; receiving a plurality of search results when the thread completes execution of the search, each search result identifying a row in the database that includes data relevant to the string permutation, computing a result relevance score associated with each search result as a measure of relevance between the search result and the received search string, and collecting the plurality of search results in an ordered queue, the ordering of the search results based on the result relevance score associated with each search result; and retrieving data from rows in the database identified by a subset of the search results collected in the ordered queue for display in response to the request.