IP Library Granted Patent US 9,792,286
Granted Patent B2
US 9,792,286 · App. 14/634,681 · Granted Oct 17, 2017

Systems and methods for obtaining customized search results by way of user-specific search 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 9,792,286
App. No.
14/634,681
Granted
Oct 17, 2017
Kind
B2
Abstract

Systems and methods are described herein for efficiently providing personalized search results to a user. Personalized search allows a user to receive search results that are most relevant to that user. For example, when a user with a strong interest in rap searches for “50 cent” they may be presented with top search results corresponding to 50 Cent's rap albums. Conversely, when a coin collector searches for “50 cent” they may be presented with top search results containing antique coins.

Claims (112)

1. A method for providing search results to a user, the method comprising:

receiving a user input comprising a symbol;

retrieving a user profile associated with the user;

identifying a database profile of a plurality of database profiles that, with respect to each database profile of the plurality of database profiles, best matches data of the user profile, wherein the database profile identifies a first index and a second index;

in response to identifying the database profile, searching for data corresponding to the first index that matches the symbol while refraining from searching data corresponding to the second index;

when search results are found based on the searching for data corresponding to the first index:

providing the search results to the user; and

associating a first entry of the first index that yielded a search result of the search results with a timestamp;

subsequent to searching for data corresponding to the first index that matches the symbol, searching for data corresponding to the second index that matches the symbol;

periodically comparing the timestamp against a threshold timestamp; and

in response to determining, based on the comparing, that the timestamp is older than the threshold timestamp:

updating the second index to include a second entry matching the first entry; and

deleting the first entry from the first index.

2. The method of claim 1 , further comprising performing the searching for data corresponding to the second index in parallel to providing the search results to the user.

3. The method of claim 1 , further comprising, in response to finding a first search result of the search results, presenting the first search result to the user while continuing to perform the searching for data corresponding to the first index.

4. The method of claim 1 , wherein providing the search results to the user comprises:

determining attributes corresponding to each search result of the search results;

grouping each search result of the search results into a respective group of a plurality of groups based on the attributes of each search result of the search results; and

generating for display the search results in a manner that is organized based on the plurality of groups.

5. The method of claim 1 , wherein the database profile, with respect to each database profile of the plurality of database profiles, best matches user profile data of a plurality of users, and wherein the method further comprises:

monitoring symbols input by each user of the plurality of users; and

dynamically modifying the first index and the second index based on the monitoring.

6. The method of claim 1 , further comprising:

determining that the searching for data corresponding to the first index yields insufficient search results;

in response to the determining, performing the searching for data corresponding to the second index;

determining that the searching for data corresponding to the second index yields sufficient search results; and

in response to determining that the searching for data corresponding to the second index for data matching the symbol yields sufficient results, updating the first index to include data of the second index.

7. The method of claim 6 , further comprising:

determining the occurrence of a real-world event;

determining a plurality of attributes corresponding to the real-world event;

identifying data in the second index that corresponds to an attribute of the plurality of attributes; and

updating the first index to include the identified data from the second index.

8. The method of claim 1 , further comprising:

comparing attributes associated with data that has not yet been placed in the first index or the second index to attributes associated with the database profile, and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a first threshold value:

updating the first index to contain the data; and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a second threshold value, wherein the second threshold value is less than the first threshold value:

updating the second index to contain the data.

9. The method of claim 1 , wherein the identification of a database profile further comprises:

identifying attributes corresponding to the search symbol;

identifying a database profile of a plurality of database profiles that, with respect to each database profile of the plurality of database profiles, best matches data of the user profile and the attributes corresponding to the search symbol.

10. A system for providing search results to a user, the system comprising:

user input circuitry;

communications circuitry; and

control circuitry configured to:

receive, using the user input circuitry, a user input comprising a symbol;

retrieve, using the communications circuitry, a user profile associated with the user;

identify a database profile of a plurality of database profiles that, with respect to each database profile of the plurality of database profiles, best matches data of the user profile, wherein the database profile identifies a first index and a second index;

in response to identifying the database profile, search for data corresponding to the first index that matches the symbol while refraining from searching data corresponding to the second index;

when search results are found based on the search for data corresponding to the first index:

provide the search results to the user; and

associate a first entry of the first index that yielded a search result of the search results with a timestamp;

subsequent to searching for data corresponding to the first index that matches the symbol, search for data corresponding to the second index that matches the symbol;

periodically compare the timestamp against a threshold timestamp; and

in response to determining, based on the comparing, that the timestamp is older than the threshold timestamp:

update the second index to include a second entry matching the first entry; and

delete the first entry from the first index.

11. The system of claim 10 , wherein the control circuitry is further configured to perform the search for data corresponding to the second index in parallel to providing the search results to the user.

12. The system of claim 10 , wherein the control circuitry is further configured to, in response to finding a first search result of the search results, present the first search result to the user while continuing to perform the search for data corresponding to the first index.

13. The system of claim 10 , wherein the control circuitry is further configured, when providing the search results to the user, to:

determine attributes corresponding to each search result of the search results;

group each search result of the search results into a respective group of a plurality of groups based on the attributes of each search result of the search results; and

generate for display the search results in a manner that is organized based on the plurality of groups.

14. The system of claim 10 , wherein the control circuitry is further configured, when the database profile, with respect to each database profile of the plurality of database profiles, best matches user profile data of a plurality of users, to:

monitor symbols input by each user of the plurality of users; and

dynamically modify the first index and the second index based on the monitoring.

15. The system of claim 10 , wherein the control circuitry is further configured to:

determine that the searching for data corresponding to the first index yields insufficient search results;

in response to the determining, perform the searching for data corresponding to the second index;

determine that the searching for data corresponding to the second index yields sufficient search results; and

in response to determining that the searching for data corresponding to the second index for data matching the symbol yields sufficient results, update the first index to include data of the second index.

16. The system of claim 15 , wherein the control circuitry is further configured to:

determine the occurrence of a real-world event;

determine a plurality of attributes corresponding to the real-world event;

identify data in the second index that corresponds to an attribute of the plurality of attributes; and

update the first index to include the identified data from the second index.

17. The system of claim 10 , wherein the control circuitry is further configured to:

compare attributes associated with data that has not yet been placed in the first index or the second index to attributes associated with the database profile, and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a first threshold value:

update the first index to contain the data; and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a second threshold value, wherein the second threshold value is less than the first threshold value:

update the second index to contain the data.

18. The system of claim 10 , wherein the control circuitry is further configured, when identifying a database profile, to:

identify attributes corresponding to the search symbol;

identify a database profile of a plurality of database profiles that, with respect to each database profile of the plurality of database profiles, best matches data of the user profile and the attributes corresponding to the search symbol.

19. A method for providing search results to a user, the method comprising:

receiving a user input comprising a symbol;

retrieving a user profile associated with the user;

identifying a database profile of a plurality of database profiles that, with respect to each database profile of the plurality of database profiles, best matches data of the user profile, wherein the database profile identifies a first index and a second index;

in response to identifying the database profile, searching for data corresponding to the first index that matches the symbol while refraining from searching data corresponding to the second index;

when search results are found based on the searching for data corresponding to the first index, providing the search results to the user;

subsequent to searching for data corresponding to the first index that matches the symbol, searching for data corresponding to the second index that matches the symbol;

comparing attributes associated with data that has not yet been placed in the first index or the second index to attributes associated with the database profile, and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a first threshold value:

updating the first index to contain the data; and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a second threshold value, wherein the second threshold value is less than the first threshold value:

updating the second index to contain the data.

20. A system for providing search results to a user, the system comprising:

user input circuitry;

communications circuitry; and

control circuitry configured to:

receive, using the user input circuitry, a user input comprising a symbol;

retrieve, using the communications circuitry, a user profile associated with the user;

identify a database profile of a plurality of database profiles that, with respect to each database profile of the plurality of database profiles, best matches data of the user profile, wherein the database profile identifies a first index and a second index;

in response to identifying the database profile, search for data corresponding to the first index that matches the symbol while refraining from searching data corresponding to the second index;

when search results are found based on the search for data corresponding to the first index, provide the search results to the user;

subsequent to searching for data corresponding to the first index that matches the symbol, search for data corresponding to the second index that matches the symbol;

compare attributes associated with data that has not yet been placed in the first index or the second index to attributes associated with the database profile, and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a first threshold value:

update the first index to contain the data; and

in response to determining that the attributes associated with the data match the attributes associated with the database profile by at least a second threshold value, wherein the second threshold value is less than the first threshold value:

update the second index to contain the data.

Assignments (9)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Oct 27, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ROVI PRODUCT CORPORATION (AS SUCCESSOR-IN-INTEREST TO ROVI GUIDES, INC.)
Reel/Frame 061786/0768 →
CHANGE OF NAME Recorded Oct 23, 2022
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 061746/0981 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2022
From: ADEIA GUIDES INC.
To: ROVI PRODUCT CORPORATION
Reel/Frame 061747/0001 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2015
From: MAUGHAN, BENJAMIN H.; STATHACOPOULOS, PAUL
To: ROVI GUIDES, INC.
Reel/Frame 035626/0712 →