IP Library Granted Patent US 10,795,894
Granted Patent B2
US 10,795,894 · App. 14/813,030 · Granted Oct 6, 2020

Hybrid facet counting using different sampling rates

Inventors: Sriram Sankar (Palo Alto, CA); Apurva Rajiv Mehta (Mountain View, CA); Dmytro Andriyovich Ivchenko (Mountain View, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/24578G06F16/248G06F16/954G06F16/9535
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,795,894
App. No.
14/813,030
Granted
Oct 6, 2020
Kind
B2
Abstract

In an example embodiment, a first set of results from first search results are displayed in a user interface. A plurality of facets, including selectable filters, of the first search results are displayed. A sampling scheme is retrieved, with the sampling scheme defining a first sampling rate for a first number of search results and a second sampling rate for a second number of search results. The first search results are traversed using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, for each sampled search result, causing an increase in a facet count for a facet and/or selectable filter having a matching value in the sampled search result. Facet counts for each of the facets and/or selectable filters are displayed in the user interface.

Claims (108)

1. A computer-implemented method comprising:

receiving, via a user interface, a search query;

obtaining first search results to the search query from a database;

displaying, in the user interface, a first set of results from the first search results;

displaying, in the user interface, a plurality of facets of the first search results, each facet including one or more selectable filters, each facet corresponding to a different type of information in the first search results, and each selectable filter corresponding to a particular value for a type of information corresponding to its facet;

retrieving a sampling scheme, the sampling scheme defining a first sampling rate for a first quantity of a single set of search results and a second sampling rate for a second quantity of the single set of search results, the first sampling rate defining a first frequency at which search results are sampled and the second sampling rate defining a second frequency, different that the first frequency, at which search results are sampled, wherein sampling involves examining some search results in a given quantity while ignoring other search results in the given quantity;

for a first quantity of the first search results, sampling the first quantity of the first search results at the first sampling rate, thereby examining some search results in the first quantity while ignoring other search results in the first quantity, and for each examined search result in the first quantity, causing an increase in a first facet count for a facet and/or selectable filter having a matching value in the examined search result in the first quantity of the first search results;

increasing the first facet count for the facet and/or selectable filter having a matching value by a factor inverse to the first sampling rate;

for a second quantity of the first search results, sampling the second quantity of the first search results at the second sampling rate, thereby examining some search results in the second quantity while ignoring other search results in the second quantity, and for each examined search result in the second quantity, causing an increase in a facet count for a facet and/or selectable filter having a matching value in the examined search result in the first quantity of the first search results;

increasing the second facet count for the facet and/or selectable filter having the matching value by a factor inverse to the second sampling rate;

adding the first facet count to the second facet count to arrive at a final facet count for the facet and/or selectable filter having the matching value;

displaying, in the user interface, the final facet count for the facet and/or selectable filter having the matching value.

2. The computer-implemented method of claim 1 , further comprising:

ordering the first search results based on a relevance scheme prior to the traversing.

3. The computer-implemented method of claim 2 , further comprising:

receiving, via the user interface, a selection of a first facet;

altering the search query to reflect the selection of the first facet;

obtaining revised search results to the altered search query by applying the altered search query to the first results;

displaying, in the user interface, a second set of results from the revised search results;

traversing the revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet and/or selectable filter other than a selectable filter corresponding to the first facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and selectable filters corresponding to the first facet.

4. The computer-implemented method of claim 3 , further comprising ranking the revised search results based on a relevance scheme prior to the traversing the revised search results.

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

receiving, via the user interface, a selection of a second facet;

altering the search query to reflect the selection of the second facet;

obtaining additional revised search results to the altered search query reflecting selection of the second facet by applying the altered search query reflecting selection of the second facet to the revised search results;

displaying, in the user interface, a third set of results from the additional revised search results;

traversing the additional revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet or second facet and/or selectable filter other than a selectable filter corresponding to the first facet or second facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and second facet and selectable filters corresponding to the first facet and second facet.

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

ranking the additional revised search results based on a relevance scheme prior to the traversing the additional revised search results.

7. The computer-implemented method of claim 3 , further comprising:

updating the selectable filters displayed for a second facet based on the selection of the first facet.

8. The computer-implemented method of claim 7 , wherein the updating the selectable filters includes displaying a preset number of selectable filters having corresponding values with the highest facet counts after the traversing the revised search results.

9. The computer-implemented method of claim 1 , further comprising:

receiving, via the user interface, a selection of a first selectable filter of a first facet;

altering the search query to reflect the selection of the first selectable filter;

obtaining revised search results to the altered search query from the database;

displaying, in the user interface, a second set of results from the revised search results;

traversing the revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet and/or selectable filter other than a selectable filter corresponding to the first facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and selectable filters corresponding to the first facet.

10. The computer-implemented method of claim 9 , further comprising:

receiving, via the user interface, a selection of a second selectable filter of a second facet;

altering the search query to reflect the selection of the second selectable filter;

obtaining additional revised search results to the altered search query reflecting the selection of the second selectable filter from the database;

displaying, in the user interface, a third set of results from the additional revised search results;

traversing the revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet and/or selectable filter other than a selectable filter corresponding to the first facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and selectable filters corresponding to the first facet.

11. The computer-implemented method of claim 1 , further comprising:

retrieving one or more facet rules, each of the facet rules including a set of instructions that, when executed by a processor, affect alteration of the search query after selection, via the user interface, of one or more facets and/or selectable filters.

12. The computer-implemented method of claim 1 , further comprising:

determining if the facet count for a facet is less than a predetermined threshold; and

in response to a determination that the facet count for a facet is less than the predetermined threshold, traversing the first search results one-by-one to obtain an exact facet count for the facet without sampling.

13. The computer-implemented method of claim 1 , wherein the causing the increase in the facet count includes, based on a particular document, adding a facet count proportional to the sampling rate specified by the sampling scheme when the particular document is traversed.

14. A system comprising:

a computer-readable medium having instructions stored thereon, which, when executed by a processor, cause the system to:

receive, via a user interface, a search query;

obtain first search results to the search query from a database;

display, in the user interface, a first set of results from the first search results;

display, in the user interface, a plurality of facets of the first search results, each facet including one or more selectable filters, each facet corresponding to a different type of information in the first search results, and each selectable filter corresponding to a particular value for a type of information corresponding to its facet;

retrieve a sampling scheme, the sampling scheme defining a first sampling rate for a first quantity of a single set of search results and a second sampling rate for a second quantity of the single set of search results, the first sampling rate defining a first frequency at which search results are sampled and the second sampling rate defining a second frequency, different that the first frequency, at which search results are sampled, wherein sampling involves examining some search results in a given quantity while ignoring other search results in the given quantity;

for a first quantity of the first search results, sample the first quantity of the first search results at the first sampling rate, thereby examining some search results in the first quantity while ignoring other search results in the first quantity, and for each examined search result in the first quantity, causing an increase in a first facet count for a facet and/or selectable filter having a matching value in the examined search result in the first quantity of the first search results;

increase the first facet count for the facet and/or selectable filter having a matching value by a factor inverse to the first sampling rate;

for a second quantity of the first search results, sample the second quantity of the first search results at the second sampling rate, thereby examining some search results in the second quantity while ignoring other search results in the second quantity, and for each examined search result in the second quantity, causing an increase in a facet count for a facet and/or selectable filter having a matching value in the examined search result in the first quantity of the first search results;

increase the second facet count for the facet and/or selectable filter having the matching value by a factor inverse to the second sampling rate;

add the first facet count to the second facet count to arrive at a final facet count for the facet and/or selectable filter having the matching value;

display, in the user interface, the final facet count for the facet and/or selectable filter having the matching value.

15. The system of claim 14 , further comprising the processor.

16. A non-transitory machine-readable storage medium having instruction data to cause a machine to perform the following operations:

receiving, via a user interface, a search query;

obtaining first search results to the search query from a database;

displaying, in the user interface, a first set of results from the first search results;

displaying, in the user interface, a plurality of facets of the first search results, each facet including one or more selectable filters, each facet corresponding to a different type of information in the first search results, and each selectable filter corresponding to a particular value for a type of information corresponding to its facet;

retrieving a sampling scheme, the sampling scheme defining a first sampling rate for a first quantity of a single set of search results and a second sampling rate for a second quantity of the single set of search results, the first sampling rate defining a first frequency at which search results are sampled and the second sampling rate defining a second frequency, different that the first frequency, at which search results are sampled, wherein sampling involves examining some search results in a given quantity while ignoring other search results in the given quantity;

for a first quantity of the first search results, sampling the first quantity of the first search results at the first sampling rate, thereby examining some search results in the first quantity while ignoring other search results in the first quantity, and for each examined search result in the first quantity, causing an increase in a first facet count for a facet and/or selectable filter having a matching value in the examined search result in the first quantity of the first search results;

increasing the first facet count for the facet and/or selectable filter having a matching value by a factor inverse to the first sampling rate;

for a second quantity of the first search results, sampling the second quantity of the first search results at the second sampling rate, thereby examining some search results in the second quantity while ignoring other search results in the second quantity, and for each examined search result in the second quantity, causing an increase in a facet count for a facet and/or selectable filter having a matching value in the examined search result in the first quantity of the first search results;

increasing the second facet count for the facet and/or selectable filter having the matching value by a factor inverse to the second sampling rate;

adding the first facet count to the second facet count to arrive at a final facet count for the facet and/or selectable filter having the matching value;

displaying, in the user interface, the final facet count for the facet and/or selectable filter having the matching value.

17. The non-transitory machine-readable storage medium of claim 16 , further comprising:

receiving, via the user interface, a selection of a first facet;

altering the search query to reflect the selection of the first facet;

obtaining revised search results to the altered search query by applying the altered search query to the first results;

displaying, in the user interface, a second set of results from the revised search results;

traversing the revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet and/or selectable filter other than a selectable filter corresponding to the first facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and selectable filters corresponding to the first facet.

18. The non-transitory machine-readable storage medium of claim 17 , further comprising:

receiving, via the user interface, a selection of a first selectable filter of a first facet;

altering the search query to reflect the selection of the first selectable filter;

obtaining revised search results to the altered search query from the database;

displaying, in the user interface, a second set of results from the revised search results;

traversing the revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet and/or selectable filter other than a selectable filter corresponding to the first facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and selectable filters corresponding to the first facet.

19. The non-transitory machine-readable storage medium of claim 17 , further comprising:

receiving, via the user interface, a selection of a second facet;

altering the search query to reflect the selection of the second facet;

obtaining additional revised search results to the altered search query reflecting selection of the second facet by applying the altered search query reflecting selection of the second facet to the revised search results;

displaying, in the user interface, a third set of results from the additional revised search results;

traversing the additional revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet or second facet and/or selectable filter other than a selectable filter corresponding to the first facet or second facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and second facet and selectable filters corresponding to the first facet and second facet.

20. The non-transitory machine-readable storage medium of claim 18 , further comprising:

receiving, via the user interface, a selection of a second selectable filter of a second facet;

altering the search query to reflect the selection of the second selectable filter;

obtaining additional revised search results to the altered search query reflecting the selection of the second selectable filter from the database;

displaying, in the user interface, a third set of results from the additional revised search results;

traversing the revised search results using the sampling scheme, sampling search results for the first number of search results at the first sampling rate and sampling search results for the second number of search results at the second sampling rate, and for each sampled search result, causing an increase in a facet count for a facet other than the first facet and/or selectable filter other than a selectable filter corresponding to the first facet, having a matching value in the sampled search result;

displaying, in the user interface, updated facet counts for each of the facets and/or selectable filters, other than the first facet and selectable filters corresponding to the first facet.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2015
From: SANKAR, SRIRAM; MEHTA, APURVA RAJIV; IVCHENKO, DMYTRO ANDRIYOVICH
To: LINKEDIN CORPORATION
Reel/Frame 036213/0021 →
Continuity (1)
Related Publication 20170031912A1 · Feb 2, 2017