IP Library Granted Patent US 8,429,147
Granted Patent B1
US 8,429,147 · App. 13/091,967 · Granted Apr 23, 2013

Federation for parallel searching

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,429,147
App. No.
13/091,967
Granted
Apr 23, 2013
Kind
B1
Abstract

A search engine can be configured to improve search times by implementing a parallel computing architecture. The index is split across a plurality of independent search nodes. A query is communicated to each of the parallel nodes and the query is searched in each independent node. The results from each node are routed to a federator that is configured to aggregate the results to a result set. The federator is configured to determine a subset of intermediate results to retrieve and aggregate from each of the independent nodes. The federator determines a number of results to retrieve from each of the nodes based at least in part on the number of nodes and the number of search results desired in the results set.

Claims (70)

1. In a computerized search system in which queries are submitted by users who receive, in response, a list of documents selected from a corpus of documents wherein the list comprises documents deemed responsive to a user's query, a method of processing the query comprising:

obtaining a query from a user;

distributing the query to a number of independent computational nodes, each computational node configured to search a corresponding segment of an index of the corpus of documents, the number of computational nodes being greater than one;

running the query in each of the computational nodes against the corresponding segment of the index of the corpus of documents to obtain from each of the computational nodes an intermediate results list of zero or more documents in the document corpus deemed responsive to the query;

identifying a desired probability of not retrieving one most responsive result in an aggregated number of results in an aggregated list of results;

determining a number of results to retrieve from each of the intermediate results lists obtained from the computational nodes, the number of results being determined to provide a determinable probability of not retrieving one most responsive result in the aggregated number of results in the aggregated list of results, the determinable probability being less than or equal to the desired probability of not retrieving one most responsive result in the aggregated list of results, where the determined number of results is less than the aggregated number of results, the determinable probability being determined based on an estimated distribution of documents among the computational nodes and further based on the number of computational nodes; and

aggregating the determined number of results from each of the intermediate results lists containing the determined number of results or more into the aggregated list of results, otherwise aggregating all results from each of the intermediate results lists containing fewer than the determined number of results into the aggregated list of results.

2. The method of claim 1 , wherein the corpus of documents is evenly distributed among the independent computational nodes and the estimated distribution is an even distribution.

3. The method of claim 1 , wherein each document within the corpus of documents is randomly assigned to one segment of the index.

4. The method of claim 1 , wherein each document within the corpus of documents is pseudo-randomly assigned to one segment of the index.

5. The method of claim 1 , wherein determining the number of results comprises determining the number of results using a statistical formula based in part on the number of independent computational nodes.

6. The method of claim 5 , wherein the statistical formula is further based on the aggregated number of results in the aggregated list of results.

7. The method of claim 6 , wherein the statistical formula represents taking the aggregated number of results, s, in the aggregated list of results minus one, choosing the number of results, n 1 , and dividing by the number of independent computational nodes, n, raised to power n 1 , as follows:

(

s

-

1

n

1

)

/

n

n

1

(

s

-

1

n

1

)

/

n

n

1

.

8. The method of claim 1 , wherein determining the number of results comprises determining a plurality of numbers of results with one of the plurality of numbers of results applicable to each of the intermediate results lists.

9. The method of claim 1 , wherein the same determined number of results applies for all of the computational nodes.

10. The method of claim 1 , wherein aggregating the determined number of results into the aggregated list of results comprises:

retrieving up to the determined number of results from each of the intermediate results lists to generate the aggregated list of results; and

ranking the documents in the aggregated list of results.

11. In a computerized search system in which queries are submitted by users who receive, in response, a list of documents selected from a corpus of documents wherein the list comprises documents deemed responsive to a user's query, a non-transitory machine-readable storage medium comprising instructions thereon that, when executed by at least one machine, cause the at least one machine to:

obtain a query from a user;

distribute the query to a number of independent computational nodes, each computational node configured to search a corresponding segment of an index of the corpus of documents, the number of computational nodes being greater than one;

run the query in each of the computational nodes against the corresponding segment of the index of the corpus of documents to obtain from each of the computational nodes an intermediate results list of zero or more documents in the document corpus deemed responsive to the query;

identify a desired probability of not retrieving one most responsive result in an aggregated number of results in an aggregated list of results;

determine a number of results to retrieve from each of the intermediate results lists obtained from the computational nodes, the number of results being determined to provide a determinable probability of not retrieving one most responsive result in the aggregated number of results in the aggregated list of results, the determinable probability being less than or equal to the desired probability of not retrieving one most responsive result in the aggregated list of results, where the determined number of results is less than the aggregated number of results, the determinable probability being determined based on an estimated distribution of documents among the computational nodes and further based on the number of computational nodes;

retrieve up to the determined number of results from each of the intermediate results lists; and

generate the aggregated list of results having no more than the number of results.

12. In a computerized search system in which queries are submitted by users who receive, in response, a list of documents selected from a corpus of documents wherein the list comprises documents deemed responsive to a user's query, a system for processing the query comprising:

a number of computational nodes, each computational node configured to search a corresponding segment of an index of the corpus of documents to obtain an intermediate results list of zero or more documents in the document corpus deemed responsive to the query, the number of computational nodes being greater than one; and

a federator configured to receive the query and communicate the query to each of the plurality of computational nodes and configured to aggregate a portion of at least two intermediate result lists to generate an output result list, the output result list including an aggregated number of results, the federator identifying a desired probability of not retrieving one most responsive result in the output result list, and determining the portion so as to provide a determinable probability of not retrieving one most responsive result in the output results list, the determinable probability being less than or equal to the desired probability of not retrieving one most responsive result in the output results list, the determinable probability being determined based on an estimated distribution of documents among the computational nodes and further based on the number of computational nodes, wherein the federator is configured to determine the portion using a statistical formula based in part on the number of computational nodes, wherein the statistical formula is further based on the aggregated number of results, and wherein the statistical formula represents taking the aggregated number of results, s, choosing a number of results n 1 , in the portion and dividing by the number of computational nodes, n, raised to power n 1 , as follows:

(

s

-

1

n

1

)

/

n

n

1

.

13. The system of claim 12 , wherein the corpus of documents is evenly distributed among the corresponding segments of the index and the estimated distribution is an even distribution.

14. The system of claim 12 , wherein each of the corresponding segments of the index of the corpus of documents references documents randomly allocated to the segment of the index.

15. The system of claim 12 , wherein each of the corresponding segments of the index of the corpus of documents references documents pseudo-randomly allocated to the segment of the index.

16. The system of claim 12 , further comprising a formatter coupled to the federator and configured to generate a response to the query based on the output result list.

17. The system of claim 16 , wherein the formatter is configured to retrieve at least a portion of documents identified in the output results list.

Assignments (16)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057570/0268) Recorded Mar 31, 2025
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: TABOOLA.COM LTD; PERFECT MARKET, INC.; CONNEXITY, INC.
Reel/Frame 070690/0269 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY BY ADDING THE THIRD ASSIGNOR PREVIOUSLY RECORDED AT REEL: 70553 FRAME: 219. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Mar 28, 2025
From: CONNEXITY, INC.; TABOOLA.COM LTD.; TABOOLA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070671/0358 →
SECURITY AGREEMENT Recorded Mar 19, 2025
From: TABOOLA.COM LTD.; TABOOLA, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070553/0219 →
PATENT SECURITY AGREEMENT Recorded Sep 22, 2021
From: TABOOLA.COM LTD.; PERFECT MARKET, INC.; CONNEXITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 057570/0268 →
TERMINATION AND RELEASE OF TRADEMARK SECURITY AGREEMENT Recorded Sep 3, 2021
From: BANK OF AMERICA, N.A.
To: CONNEXITY, INC.; BECOME, INC.
Reel/Frame 057406/0330 →
ENTITY CONVERSION Recorded Jun 15, 2020
From: CONNEXITY, INC.
To: CONNEXITY, LLC
Reel/Frame 052945/0581 →
ENTITY CONVERSION Recorded Jun 15, 2020
From: CONNEXITY, LLC
To: CONNEXITY, INC.
Reel/Frame 052945/0590 →
RELEASE OF SECURITY INTEREST Recorded Oct 4, 2016
From: LBC CREDIT PARTNERS III, L.P.
To: CONNEXITY, INC.; BECOME, INC.
Reel/Frame 039935/0233 →
RELEASE OF SECURITY INTEREST Recorded Oct 4, 2016
From: LBC CREDIT PARTNERS III, L.P.
To: CONNEXITY, INC.; BECOME, INC.
Reel/Frame 039934/0886 →
SECURITY INTEREST Recorded Feb 27, 2015
From: CONNEXITY, INC.; BECOME, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035047/0271 →
RELEASE OF SECURITY INTEREST Recorded Feb 17, 2015
From: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
To: SHOP HOLDING CORPORATION; CONNEXITY, INC., F/K/A SHOPZILLA, INC.; ZAPPLI, INC.; CONNEXITY, INC.
Reel/Frame 034973/0361 →
RELEASE OF SECURITY INTEREST Recorded Feb 16, 2015
From: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
To: SHOP HOLDING CORPORATION; CONNEXITY, INC., F/K/A SHOPZILLA, INC.; ZAPPLI, INC.; CONNEXITY, INC.
Reel/Frame 034967/0454 →
SECURITY INTEREST Recorded Feb 13, 2015
From: CONNEXITY, INC.; BECOME, INC.
To: LBC CREDIT PARTNERS III, L.P., AS AGENT
Reel/Frame 034958/0942 →
MERGER AND CHANGE OF NAME Recorded Sep 30, 2014
From: SHOPZILLA, INC.; CONNEXITY, INC.
To: CONNEXITY, INC.
Reel/Frame 033849/0801 →
AMENDMENT NUMBER THREE TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2014
From: CONNEXITY, INC.; SHOP HOLDING CORPORATION; SHOPZILLA, INC.; ZAPPLI, INC.
To: WELLS FARGO CAPITAL FINANCE, LLC
Reel/Frame 032631/0627 →
AMENDMENT NUMBER THREE TO PATENT SECURITY AGREEMENT Recorded Mar 11, 2014
From: CONNEXITY, INC.; SHOP HOLDING CORPORATION; SHOPZILLA, INC.; ZAPPLI, INC.
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 032427/0568 →