| CPC G06F 16/328 (2019.01) [G06F 16/2456 (2019.01); G06F 16/3325 (2019.01); G06F 16/335 (2019.01)] | 18 Claims |

|
1. A computer-implemented method performed by a computer system having a memory and at least one hardware processor, the computer-implemented method comprising:
storing parent documents of a first type and a corresponding document identifier for each one of the parent documents in a first table;
storing child documents of a second type and a corresponding document identifier for each one of the child documents in a second table, the second table comprising, for each one of the child documents, an indication that the child document is related to one of the parent documents;
building a base index using the first table and the second table, the base index storing the document identifiers of the parent documents and the document identifiers of the child documents in contiguous document blocks, each one of the document blocks storing the document identifier of one of the parent documents and the document identifier of each one of the child documents that is related to the parent document in a sorted order, the base index further storing document data of each one of the parent documents in association with the document identifier of the parent document and document data of each one of the child documents in association with the document identifier of the child document;
subsequent to the building of the base index, updating a live index to include document identifiers of additional parent documents that have been added to the first table and document identifiers of additional child documents that have been added to the second table, the live index storing document data of each one of the additional parent documents in association with the document identifier of the additional parent document and document data of each one of the additional child document in association with the document identifier of the additional child document, wherein the base index comprises a compressed inverted index and the live index comprises a hash map;
receiving a search query from a computing device of a user;
computing a first set of search results based on a search of the base index using the search query;
computing a second set of search results based on a search of the live index using the search query;
computing a hybrid set of search results comprising a combination of the first set of search results and the second set of search results; and
causing the hybrid set of search results to be displayed on the computing device of the user.
|