1. One or more computer readable media having stored thereon a plurality of instructions that, when executed by one or more processors of a device, causes the one or more processors to: receive a query including one or more search terms; rank a plurality of blocks based on how well the plurality of blocks matches the one or more search terms, wherein each of the plurality of blocks is part of one document of a plurality of documents, and wherein each of the plurality of blocks is obtained by visual segmentation of one of the plurality of documents; ranking the blocks according to the location of the one or more search terms in the block and how frequently the one or more search terms occur in the block; for each of the plurality of documents, rank the document based at least in part on the rankings of the blocks that are part of the document; and return, in response to the query, an indication of the rankings of one or more of the plurality of documents.