IP Library Granted Patent US 11,789,960
Granted Patent B2
US 11,789,960 · App. 17/530,894 · Granted Oct 17, 2023

Systems and methods for grouping search results from multiple sources

Inventor: David Gerald Wittke (Simi Valley, CA)
Assignee: Rovi Product Corporation
G06F16/248G06F16/24573G06F16/24578G06F16/285G06F16/953G06F16/9535G06F3/04847
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 11,789,960
App. No.
17/530,894
Granted
Oct 17, 2023
Kind
B2
Abstract

Systems and methods include presenting search results from multiple sources by grouping the results from some of the multiple sources, ranking each of the multiple sources and groups of sources, and not presenting duplicate results 5 from lower ranked sources. In this way, the user is provided with search results that are distinct as opposed to presenting the same result multiple times when it is available from different sources.

Claims (102)

1. A method comprising:

retrieving, based on a search query, search results from each of a first content source, a second content source and a third content source;

merging search results from the first content source with search results from the second content source into a list of merged search results, wherein the list of merged search results comprises at least a first result;

identifying a second result and a third result from the third content source;

in response to determining the first result has a higher ranking than a ranking of each of the second result and the third result:

comparing the first result to the second result and the third result;

determining, based on the comparing, the first result matches the second result and the first result does not match the third result; and

generating for display a grid comprising at least two rows, each row including one or more search results, wherein a first row of the at least two rows comprises the first result and wherein a second row of the at least two rows comprises the third result.

2. The method of claim 1 , further comprising:

receiving an instruction to rank results from the third source higher than results from the merged list of results; and

in response to receiving the instruction:

identifying a first subset of search results from the third content source including the second result and excluding the third result;

identifying a second subset of the list of merged search results excluding the first result and including a fourth result from either the first content source or the second content source, wherein the fourth result is not in the first subset; and

generating for display the first subset in the first row instead of the first result and the second subset in the second row instead of the third result.

3. The method of claim 2 , further comprising:

retrieving a display template for the grid;

retrieving, from a first field of the display template associated with the first row, a first value for a first number of results that fit in the first row;

retrieving, from a second field of the display template associated with the second row, a second value for a second number of results that fit in the second row;

selecting the first number of results from the list of merged search results as at least part of the first subset; and

selecting the second number of results from the third content source results as the second subset.

4. The method of claim 2 , further comprises:

ranking each result in the merged list of search results based on a relevance of each result to at least one of the instruction or the search query; and

assigning a highest ranked result in the merged list of search results to the first subset.

5. The method of claim 2 , further comprising:

modifying the second subset by replacing the third result with the fourth result, wherein the modifying comprises:

retrieving a next highest ranked result not in the second subset as the fourth result;

removing the third result from the second subset; and

adding the fourth result to the second subset.

6. The method of claim 1 , further comprising:

comparing metadata associated with the first result with metadata associated with the second result, wherein the comparing comprises:

comparing a first identifier of the first result and a second identifier of the second result with a plurality of identifiers stored in a database;

determining that a first stored identifier matches the first identifier and a second stored identifier matches the second identifier;

retrieving first metadata from a first field associated with the first stored identifier and second metadata from a second field associated with the second stored identifier; and

comparing first characters of the first metadata associated with the first result with second characters of the second metadata associated with the second result.

7. The method of claim 1 , wherein the generating for display the grid further comprises:

comparing each result of the merged list of search results with the third result;

determining, based on comparing each result of the merged list of search results with the third result, a number of duplicate results between the merged list of search results and the third result; and

generating for display an indication of the number of duplicate results in the second row.

8. The method of claim 1 , wherein merging the search results from the first source with the search results from the second source into the merged list of search results comprises:

retrieving a first characteristic of the first source and a second characteristic of the second source;

determining that the first characteristic matches the second characteristic; and

in response to the determining that the first characteristic matches the second characteristic, merging the results.

9. The method of claim 1 , wherein merging the search results from the first source with the search results from the second source into the merged list of search results comprises:

receiving an instruction to merge the search results from the first source with the search results from the second source;

storing, in a data structure, the instruction to merge the search results from the first source with the search results from the second source;

in response to receiving a first result from the first source and a second result from the second source, retrieving the instruction from the data structure; and

in response to the retrieving the instructions, merging the search results from the first content source with the search results from the second source.

10. The method of claim 1 , further comprising:

receiving a user selection of the first result; and

in response to the receiving the user selection, generating for display an indication that the first result is also available from a content source different from the first content source and the second content source.

11. A system comprising:

at least one processor communicably coupled with components arranged to process search queries; and

control circuitry, communicably coupled to the at least one processor and configured to transmit instructions to and from the at least one processor, configured to:

retrieve, based on a search query, search results from each of a first content source, a second content source and a third content source;

merge search results from the first content source with search results from the second content source into a list of merged search results, wherein the list of merged search results comprises at least a first result;

identify a second result and a third result from the third content source;

in response to determining the first result has a higher ranking than a ranking of each of the second result and the third result:

compare the first result to the second result and the third result;

determine, based on the comparing, the first result matches the second result and the first result does not match the third result; and

generate for display a grid comprising at least two rows, each row including one or more search results, wherein a first row of the at least two rows comprises the first result and wherein a second row of the at least two rows comprises the third result.

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

receive an instruction to rank results from the third source higher than results from the merged list of results; and

in response to receiving the instruction:

identify a first subset of search results from the third content source including the second result and excluding the third result;

identify a second subset of the list of merged search results excluding the first result and including a fourth result from either the first content source or the second content source, wherein the fourth result is not in the first subset; and

generate for display the first subset in the first row instead of the first result and the second subset in the second row instead of the third result.

13. The system of claim 12 , wherein the control circuitry is further configured to:

retrieve a display template for the grid;

retrieve, from a first field of the display template associated with the first row, a first value for a first number of results that fit in the first row;

retrieve, from a second field of the display template associated with the second row, a second value for a second number of results that fit in the second row;

select the first number of results from the list of merged search results as at least part of the first subset; and

select the second number of results from the third content source results as the second subset.

14. The system of claim 12 , wherein the control circuitry is further configured to:

rank each result in the merged list of search results based on a relevance of each result to at least one of the instruction or the search query; and

assign a highest ranked result in the merged list of search results to the first subset.

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

modify the second subset by replacing the third result with the fourth result, wherein the modifying comprises:

retrieving a next highest ranked result not in the second subset as the fourth result;

removing the third result from the second subset; and

adding the fourth result to the second subset.

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

compare metadata associated with the first result with metadata associated with the second result, wherein the comparing comprises:

comparing a first identifier of the first result and a second identifier of the second result with a plurality of identifiers stored in a database;

determining that a first stored identifier matches the first identifier and a second stored identifier matches the second identifier;

retrieving first metadata from a first field associated with the first stored identifier and second metadata from a second field associated with the second stored identifier; and

comparing first characters of the first metadata associated with the first result with second characters of the second metadata associated with the second result.

17. The system of claim 11 , wherein the control circuitry configured to generate for display the grid is further configured to:

compare each result of the merged list of search results with the third result;

determine, based on comparing each result of the merged list of search results with the third result, a number of duplicate results between the merged list of search results and the third result; and

generate for display an indication of the number of duplicate results in the second row.

18. The system of claim 11 , wherein the control circuitry configured to merge the search results from the first source with the search results from the second source into the merged list of search results is further configured to:

retrieve a first characteristic of the first source and a second characteristic of the second source;

determine that the first characteristic matches the second characteristic; and

in response to the determining that the first characteristic matches the second characteristic, merge the results.

19. The system of claim 11 , wherein the control circuitry configured to merge the search results from the first source with the search results from the second source into the merged list of search results is further configured to:

receive an instruction to merge the search results from the first source with the search results from the second source;

store, in a data structure, the instruction to merge the search results from the first source with the search results from the second source;

in response to receiving a first result from the first source and a second result from the second source, retrieve the instruction from the data structure; and

in response to the retrieving the instructions, merge the search results from the first content source with the search results from the second source.

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

receive a user selection of the first result; and

in response to the receiving the user selection, generate for display an indication that the first result is also available from a content source different from the first content source and the second content source.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2021
From: WITTKE, DAVID GERALD
To: ROVI GUIDES, INC.
Reel/Frame 058164/0811 →