IP Library Granted Patent US 10,140,299
Granted Patent B2
US 10,140,299 · App. 14/634,678 · Granted Nov 27, 2018

Systems and methods for enhancing search results by way of updating 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 10,140,299
App. No.
14/634,678
Granted
Nov 27, 2018
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 (81)

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

identifying a database profile of a plurality of database profiles that represents common user profile traits of a segment of users, wherein the database profile identifies a first index and a second index;

receiving search queries from a plurality of users of the segment comprising a common symbol;

in response to receiving each search query of the search queries, searching for data corresponding to the first index that matches the symbol while refraining from searching for data corresponding to the second index;

determining, during each searching operation that occurs in response to receiving each search query, that the searching for data corresponding to the first index yields insufficient search results;

in response to determining that the searching for data corresponding to the first index yields insufficient search results, searching for data corresponding to the second index that matches the symbol;

in response to determining that searching for data corresponding to the second index yields a number of search results that is greater than a first threshold number, incrementing a counter value that represents how many search queries comprising the common symbol yield the number of search results when searching for data corresponding to the second index;

determining that the counter value corresponds to a second threshold number; and

in response to determining that the counter value corresponds to the second threshold number, updating the first index to include data of the second index.

2. The method of claim 1 , further comprising presenting a user with the results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index before updating the indices.

3. 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 corresponding to the searching for data corresponding to the first index.

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

5. The method of claim 1 , wherein providing the search results to the user of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index comprises:

determining attributes corresponding to each search result of the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index;

grouping each search result of the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index into a respective group of a plurality of groups based on the attributes of each search result of the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index; and

generating for display the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index in a manner that is organized based on the plurality of groups.

6. The method of claim 1 , further comprising:

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.

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 , further comprising:

in response to receiving the user input, associating an entry of the first index that yielded a search result of the search results with a timestamp;

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,

identifying data in the first index where the timestamp is older than a threshold timestamp, in response to the identifying:

updating the second index to include the entry, and

deleting the entry from the first index.

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

identifying attributes corresponding to the search symbol.

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

user input circuitry;

communications circuitry; and

control circuitry configured to:

identify a database profile of a plurality of database profiles that represents common user profile traits of a segment of users, wherein the database profile identifies a first index and a second index;

receive search queries from a plurality of users of the segment comprising a common symbol;

in response to receiving each search query of the search queries, search for data corresponding to the first index that matches the symbol while refraining from searching for data corresponding to the second index;

determine, during each searching operation that occurs in response to receiving each search query, that the searching for data corresponding to the first index yields insufficient search results;

in response to determining that the searching for data corresponding to the first index yields insufficient search results, search for data corresponding to the second index that matches the symbol;

in response to determining that searching for data corresponding to the second index yields a number of search results that is greater than a first threshold number, incrementing a counter value that represents how many search queries comprising the common symbol yield the number of search results when searching for data corresponding to the second index;

determine that the counter value corresponds to a second threshold number; and

in response to determining that the counter value corresponds to the second threshold number, update the first index to include data of the second index.

12. The system of claim 11 , wherein the control circuitry is further configured to present a user with the results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index before updating the indices.

13. The system of claim 11 , 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 corresponding to the searching for data corresponding to the first index.

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

15. The system of claim 11 , wherein the control circuitry is further configured, when providing the search results to the user of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index, to:

determine attributes corresponding to each search result of the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index;

group each search result of the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index into a respective group of a plurality of groups based on the attributes of each search result of the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index; and

generate for display the search results of at least one of the searching for data corresponding to the first index and searching for data corresponding to the second index in a manner that is organized based on the plurality of groups.

16. The system of claim 11 , wherein the control circuitry is further configured 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.

17. The system of claim 11 , 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.

18. The system of claim 11 , 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.

19. The system of claim 11 , wherein the control circuitry is further configured to:

in response to receiving the user input, associate an entry of the first index that yielded a search result of the search results with a timestamp;

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,

identify data in the first index where the timestamp is older than a threshold timestamp, in response to the identifying:

update the second index to include the entry, and

delete the entry from the first index.

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

identify attributes corresponding to the search symbol.

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 12, 2015
From: MAUGHAN, BENJAMIN H.; STATHACOPOULOS, PAUL
To: ROVI GUIDES, INC.
Reel/Frame 035616/0459 →