Patent Document ID: 10078697
Application ID: 14423554
Patent Status: 1

Claim One:
1. A computer-implemented method of searching an inverted index having a plurality of posting lists, the method comprising: receiving, via at least one server, a search query to be searched, the search query including a plurality of search terms; calculating, via at least one computer processor, a weight of the search query; determining, via the at least one computer processor, a number of sub-queries to search based on the weight of the search query, each respective sub-query having the plurality of search terms of the search query, each respective sub-query to be searched by a respective separate execution thread of the at least one computer processor; determining, via the at least one computer processor, for each respective search term of the plurality of search terms, a respective posting list of the plurality of posting lists to search, each respective posting list of the plurality of posting lists being divided into a plurality of segments; determining, via the at least one computer processor, for each respective sub-query, a respective set of authorized segments of the plurality of segments to search by the respective separate execution thread and a respective set of forbidden segments of the plurality of segments not to search by the respective separate execution thread in each respective posting list; the respective set of authorized segments being, for each respective sub-query, one of a plurality of complementary sets of corresponding interspaced segments; and a combination of the plurality of complementary sets of corresponding interspaced segments forming the respective posting lists to search in the plurality of posting lists; multithreadedly searching the plurality of complementary sets of corresponding interspaced segments, by each of the respective separate execution threads via the at least one computer processor, by searching each respective term of the plurality of terms in the respective posting list of the plurality of posting lists, each respective separate execution thread searching the respective term of the plurality of terms in the respective set of authorized segments of the respective posting list and not searching the respective forbidden set of segments of the respective posting list to yield per-thread search results; aggregating, via the at least one computer processor, the per-thread search results, to yield aggregated search results; and transmitting, via the at least one server, at least a portion of the aggregated search results.