IP Library Granted Patent US 12,147,425
Granted Patent B2
US 12,147,425 · App. 17/950,897 · Granted Nov 19, 2024

Search-result explanation systems and methods

Inventors: Gann Bierner (Oakland, CA); Robert Weis (Oakland, CA); Kevan Craig McGowan (Oakland, CA); Joel Edward Hobson (Daly City, CA)
Assignee: Ancestry.com Operations Inc.
G06F16/24535G06F16/2228G06F16/24575G06F16/24578
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 12,147,425
App. No.
17/950,897
Granted
Nov 19, 2024
Kind
B2
Abstract

Search-result explanation systems, methods, and computer-program products receive a user search query, expand the search query into a plurality of sub-queries, perform a database search using the expanded user search query, and determine which sub-queries of the plurality of sub-queries matched with a particular search result. Results from the database search are re-indexed in an index generated on-the-fly and in-memory, within which the results are searched using the sub-queries to determine matching fields and match types. A score is determined based on the type of match(es) with a particular search result based on one or more predefined weights and normalized using a denominator comprising a fictitious, on-the-fly record configured to receive a perfect score according to the received user search query. A user interface showing ranked results and explanations for the ranking, including a score for the result based on the expanded user search query.

Claims (52)

1. A computer-implemented method of generating contextualized search-results from a user query of historical records, the method comprising:

receiving a set of search results from a database comprising historical records, the search results being based on a user query;

generating an index comprising the set of search results;

dividing the user query into a plurality of sub-queries, each sub-query comprising a component of the user query;

for each sub-query of the plurality of sub-queries:

searching the index using the sub-query to identify a corresponding historical record in the index, wherein the corresponding historical record matches the component of the sub-query;

identifying, within the corresponding historical record, a field that matches the component of the sub-query;

determining, from among a set of possible match types comprising exact matches, initial matches, and phonetic matches, a match type between the field and the component; and

calculating a score for the sub-query based at least on the match type for the sub-query.

2. The computer-implemented method of claim 1 , further comprising generating a total score for the search result corresponding to the historical record based on the score for each sub-query of the user query.

3. The computer-implemented method of claim 1 , further comprising applying a weight to the score based at least on the match type of the sub-query.

4. The computer-implemented method of claim 3 , further comprising generating a total score for the search result corresponding to the historical record based on the weighted score for each sub-query of the user query.

5. The computer-implemented method of claim 4 , further comprising:

generating additional total scores for additional results in the index based on respective sub-query scores; and

ranking the set of search results based on the total score and the additional total scores.

6. The computer-implemented method of claim 1 , wherein the index is generated in volatile memory.

7. The computer-implemented method of claim 1 , further comprising displaying the historical record, the score, and the match type for a search result.

8. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors of a computer system, cause the computer system to perform at least the following:

receive a set of search results from a database comprising historical records, the search results being based on a user query;

generate an index comprising the set of search results;

divide the user query into a plurality of sub-queries, each sub-query comprising a component of the user query;

for each sub-query of the plurality of sub-queries:

search the index using the sub-query to identify a corresponding historical record in the index, wherein the corresponding historical record matches the component of the sub-query;

identify, within the corresponding historical record, a field that matches the component of the sub-query;

determine, from among a set of possible match types comprising exact matches, initial matches, and phonetic matches, a match type between the field and the component; and

calculate a score for the sub-query based at least on the match type for the sub-query.

9. The non-transitory computer-readable medium of claim 8 , wherein the instructions are further executable by the one or more processors to cause the computer system to generate a total score for the search result corresponding to the historical record based on the score for each sub-query of the user query.

10. The non-transitory computer-readable medium of claim 8 , wherein the instructions are further executable by the one or more processors to cause the computer system to apply a weight to the score based at least on the match type of the sub-query.

11. The non-transitory computer-readable medium of claim 10 , wherein the instructions are further executable by the one or more processors to cause the computer system to generate a total score for the search result corresponding to the historical record based on the weighted score for each sub-query of the user query.

12. The non-transitory computer-readable medium of claim 11 , wherein the instructions are further executable by the one or more processors to cause the computer system to:

generate additional total scores for additional results in the index based on respective sub-query scores; and

rank the set of search results based on the total score and the additional total scores.

13. The non-transitory computer-readable medium of claim 8 , wherein the instructions are further executable by the one or more processors to cause the computer system to generate the index generated in volatile memory.

14. The non-transitory computer-readable medium of claim 8 , wherein the instructions are further executable by the one or more processors to cause the computer system to display the historical record, the score, and the match type for a search result.

15. A computer system comprising:

one or more processors; and

a non-transitory computer-readable medium comprising instructions that, when executed by the one or more processors, cause the computer system to perform at least the following:

receive a set of search results from a database comprising historical records, the search results being based on a user query;

generate an index comprising the set of search results;

divide the user query into a plurality of sub-queries, each sub-query comprising a component of the user query;

for each sub-query of the plurality of sub-queries:

search the index using the sub-query to identify a corresponding historical record in the index, wherein the corresponding historical record matches the component of the sub-query;

identify, within the corresponding historical record, a field that matches the component of the sub-query;

determine, from among a set of possible match types comprising exact matches, initial matches, and phonetic matches, a match type between the field and the component; and

calculate a score for the sub-query based at least on the match type for the sub-query.

16. The computer system of claim 15 , wherein the instructions are further executable by the one or more processors to cause the computer system to generate a total score for the search result corresponding to the historical record based on the score for each sub-query of the user query.

17. The computer system of claim 15 , wherein the instructions are further executable by the one or more processors to cause the computer system to apply a weight to the score based at least on the match type of the sub-query.

18. The computer system of claim 17 , wherein the instructions are further executable by the one or more processors to cause the computer system to generate a total score for the search result corresponding to the historical record based on the weighted score for each sub-query of the user query.

19. The computer system of claim 18 , wherein the instructions are further executable by the one or more processors to cause the computer system to:

generate additional total scores for additional results in the index based on respective sub-query scores; and

rank the set of search results based on the total score and the additional total scores.

20. The computer system of claim 19 , wherein the instructions are further executable by the one or more processors to cause the computer system to cause a user device to display the historical record, the score, and the match type for a search result.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2022
From: BIERNER, GANN; WEIS, ROBERT; MCGOWAN, KEVAN CRAIG; HOBSON, JOEL EDWARD
To: ANCESTRY.COM OPERATIONS INC.
Reel/Frame 061339/0336 →
Continuity (3)
Provisional Application 63316090 · Mar 3, 2022
Provisional Application 63247550 · Sep 23, 2021
Related Publication 20230086791A1 · Mar 23, 2023