IP Library Granted Patent US 10,210,282
Granted Patent B2
US 10,210,282 · App. 14/831,017 · Granted Feb 19, 2019

Search and retrieval of electronic documents using key-value based partition-by-query indices

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 10,210,282
App. No.
14/831,017
Granted
Feb 19, 2019
Kind
B2
Abstract

Methods and systems for providing a search engine capability for large datasets are disclosed. These methods and systems employ a Partition-by-Query index containing key-values pairs corresponding to keys reflecting concept-ordered search phrases and values reflecting ordered lists of document references that are responsive to the concept-ordered search phrase in a corresponding key. A large Partition-by-Query index may be partitioned across multiple servers depending on the size of the index, or the size of the index may be reduced by compressing query-references pairs into clusters. The methods and systems described herein may to provide suggestions and spelling corrections to the user, thereby improving the user's search engine experience while meeting user expectations for search quality and responsiveness.

Claims (65)

1. A method for providing suggested search queries in response to a search query, the method comprising:

generating, by a computing device, a confusion set for each token in the search query, wherein each confusion set comprises a plurality of residual strings formed from a token of the search query by adding, modifying, or removing characters in each position of the token, and other tokens associated with the residual strings, wherein for at least one token in the search query there is at least one residual string in the confusion set that varies from the token by having at least one character that is not present in the token;

generating, by the computing device, a confusion matrix from the confusion sets, wherein the confusion matrix comprises entries that are the products of the residual strings and tokens in the confusion sets, wherein the entries form potential suggested search queries;

ranking, by the computing device, the suggested search queries in the confusion matrix by a vector space angle between the search query and the suggested search queries, wherein the search query and each suggested search query is associated with a vector;

selecting, by the computing device, each ranked suggested search query having a vector space angle between the search query and the ranked suggested search query that is less than a vector space angle between the search query and a document associated with a higher-ranked suggested search query; and

presenting the selected suggested search queries on a computing device.

2. The method of claim 1 , further comprising the step of generating, by the computing device, a Bloom filter for the confusion matrix, wherein each element of the Bloom filter corresponds to an entry in the confusion matrix, and removing entries from the confusion matrix using the Bloom filter.

3. The method of claim 1 , wherein the search query comprises a plurality of tokens including a first token and a second token, and the vector space angle between the search query and a particular document is determined based on:

a TF-IDF value of the first token,

a TF-IDF value of the second token,

a similarity between a particular token from the plurality of tokens and a suggestion for the particular token, and

a magnitude of a vector formed by the document.

4. The method of claim 1 , wherein the confusion matrix is a reduced form confusion matrix formed from a selected element of a confusion set while excluding the remaining elements of the confusion set.

5. The method of claim 4 , further comprising:

identifying a subset of rows of the reduced form confusion matrix by ranking the rows based on a similarity of each row of the confusion matrix to a combination of individually spell-corrected tokens; and

combining a plurality of single-word tokens to obtain a multi-word token.

6. An apparatus for generating a list of the most relevant suggestions or spelling corrections to a search engine user from a collection of suggestions or spelling corrections, the apparatus comprising:

means for generating, by a computing device, confusion sets for each token in a search query, wherein each confusion set comprises a plurality of residual strings formed from a token of the search query by adding, modifying, or removing characters in each position of the token, and other tokens associated with the residual strings;

means for generating, by the computing device, a confusion matrix from the confusion sets, wherein the confusion matrix comprises entries that are the products of the residual strings and tokens in the confusion sets, wherein the entries form potential suggested search queries;

means for ranking, by the computing device, the suggested search queries in the confusion matrix by a vector space angle between the search query and the suggested search queries, wherein the search query and each suggested search query is associated with a vector; and

means for selecting, by the computing device, each ranked suggested search query having a vector space angle between the search query and the ranked suggested search query that is less than a vector space angle between the search query and a document associated with a higher-ranked suggested search query.

7. The apparatus of claim 6 , further comprising the step of generating, by the computing device, a Bloom filter for the confusion matrix, wherein each element of the Bloom filter corresponds to an entry in the confusion matrix, and removing entries from the confusion matrix using the Bloom filter.

8. The apparatus of claim 6 , wherein the search query comprises a plurality of tokens including a first token and a second token, and the vector space angle between the search query and a particular document is determined based on:

a TF-IDF value of the first token,

a TF-IDF value of the second token,

a similarity between a particular token from the plurality of tokens and a suggestion for the particular token, and

a magnitude of a vector formed by the document.

9. The apparatus of claim 6 , wherein the confusion matrix is a reduced form confusion matrix formed from a selected element of a confusion set while excluding the remaining elements of the confusion set.

10. The apparatus of claim 9 , further comprising:

means for identifying a subset of rows of the reduced form confusion matrix by ranking the rows based on a similarity of each row of the confusion matrix to a combination of individually spell-corrected tokens; and

means for combining a plurality of single-word tokens to obtain a multi-word token.

11. A computer-readable memory, storing instructions for providing suggested search queries in response to a search query, the instructions performing steps comprising:

generating, by a computing device, a confusion set for each token in the search query, wherein each confusion set comprises a plurality of residual strings formed from a token of the search query by adding, modifying, or removing characters in each position of the token, and other tokens associated with the residual strings, wherein for at least one token in the search query there is at least one residual string in the confusion set that varies from the token by having at least one character that is not present in the token;

generating, by the computing device, a confusion matrix from the confusion sets, wherein the confusion matrix comprises entries that are the products of the residual strings and tokens in the confusion sets, wherein the entries form potential suggested search queries;

ranking, by the computing device, the suggested search queries in the confusion matrix by a vector space angle between the search query and the suggested search queries, wherein the search query and each suggested search query is associated with a vector;

selecting, by the computing device, each ranked suggested search query having a vector space angle between the search query and the ranked suggested search query that is less than a vector space angle between the search query and a document associated with a higher-ranked suggested search query; and

presenting the selected suggested search queries on a computing device.

12. The computer-readable memory of claim 11 , wherein the instructions further perform the step of generating, by the computing device, a Bloom filter for the confusion matrix, wherein each element of the Bloom filter corresponds to an entry in the confusion matrix, and removing entries from the confusion matrix using the Bloom filter.

13. The computer-readable memory of claim 11 , wherein the search query comprises a plurality of tokens including a first token and a second token, and the vector space angle between the search query and a particular document is determined based on:

a TF-IDF value of the first token,

a TF-IDF value of the second token,

a similarity between a particular token from the plurality of tokens and a suggestion for the particular token, and

a magnitude of a vector formed by the document.

14. The computer-readable memory of claim 11 , wherein the confusion matrix is a reduced form confusion matrix formed from a selected element of a confusion set while excluding the remaining elements of the confusion set.

15. The computer-readable memory of claim 14 , wherein the instructions are for further performing the steps of:

identifying a subset of rows of the reduced form confusion matrix by ranking the rows based on a similarity of each row of the confusion matrix to a combination of individually spell-corrected tokens; and

combining a plurality of single-word tokens to obtain a multi-word token.

16. A computer system comprising:

one or more processors; and

a computer-readable memory, storing instructions for providing suggested search queries in response to a search query, the instructions performing steps comprising:

generating, by a computing device, a confusion set for each token in the search query, wherein each confusion set comprises a plurality of residual strings formed from a token of the search query by adding, modifying, or removing characters in each position of the token, and other tokens associated with the residual strings, wherein for at least one token in the search query there is at least one residual string in the confusion set that varies from the token by having at least one character that is not present in the token;

generating, by the computing device, a confusion matrix from the confusion sets, wherein the confusion matrix comprises entries that are the products of the residual strings and tokens in the confusion sets, wherein the entries form potential suggested search queries;

ranking, by the computing device, the suggested search queries in the confusion matrix by a vector space angle between the search query and the suggested search queries, wherein the search query and each suggested search query is associated with a vector;

selecting, by the computing device, each ranked suggested search query having a vector space angle between the search query and the ranked suggested search query that is less than a vector space angle between the search query and a document associated with a higher-ranked suggested search query; and

presenting the selected suggested search queries on a computing device.

17. The computer system of claim 16 , wherein the computer-readable memory stores instructions for further performing the step of generating, by the computing device, a Bloom filter for the confusion matrix, wherein each element of the Bloom filter corresponds to an entry in the confusion matrix, and removing entries from the confusion matrix using the Bloom filter.

18. The computer system of claim 16 , wherein the search query comprises a plurality of tokens including a first token and a second token, and the vector space angle between the search query and a particular document is determined based on:

a TF-IDF value of the first token,

a TF-IDF value of the second token,

a similarity between a particular token from the plurality of tokens and a suggestion for the particular token, and

a magnitude of a vector formed by the document.

19. The computer system of claim 16 , wherein the confusion matrix is a reduced form confusion matrix formed from a selected element of a confusion set while excluding the remaining elements of the confusion set.

20. The computer system of claim 19 , wherein the computer-readable memory stores further instructions for performing the steps of:

identifying a subset of rows of the reduced form confusion matrix by ranking the rows based on a similarity of each row of the confusion matrix to a combination of individually spell-corrected tokens; and

combining a plurality of single-word tokens to obtain a multi-word token.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Oct 3, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 069110/0508 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT (TERM LOAN) AT REEL 039341, FRAME 0008 Recorded Sep 11, 2024
From: MORGAN STANLEY SENIOR FUNDING, INC. AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 069133/0140 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2021
From: CORTLAND CAPITAL MARKET SERVICES LLC, AS ADMINISTRATIVE AGENT
To: UBER TECHNOLOGIES, INC.
Reel/Frame 055547/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2019
From: DECARTA LLC
To: UBER TECHNOLOGIES, INC.
Reel/Frame 047935/0753 →
MERGER AND CHANGE OF NAME Recorded Jan 8, 2019
From: DECARTA INC.; MAGELLAN MERGER SUB LLC
To: DECARTA LLC
Reel/Frame 047935/0772 →
MERGER Recorded Jan 8, 2019
From: DECARTA INC.
To: DECARTA INC.
Reel/Frame 047935/0814 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2019
From: HENDREY, GEOFFREY
To: DECARTA INC.
Reel/Frame 047935/0823 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBER PREVIOUSLY RECORDED AT REEL: 45853 FRAME: 418. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 26, 2018
From: UBER TECHNOLOGIES, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 049259/0064 →
SECURITY INTEREST Recorded Apr 6, 2018
From: UBER TECHNOLOGIES, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 045853/0418 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jul 14, 2016
From: UBER TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 039341/0008 →
PATENT SECURITY AGREEMENT (REVOLVER) Recorded Jul 14, 2016
From: UBER TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 039341/0064 →