# US 10,769,156 B2 · Rank query results for relevance utilizing external context

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,769,156 B2
- Document ID: US10769156B2
- Status: Granted
- Kind: B2
- Application number: 15/248,004
- Filed: 2016-08-26
- Published: 2018-03-01
- Granted: 2020-09-08
- Earliest claimed: 2016-08-26
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Michael Taylor; Torbjorn Helvik; Oystein Fledsberg; Lars Hagen
- Web page: https://patentgrep.com/patent/US10769156B2

## CPC

- G06F 16/24578: {using ranking}
- G06F 16/2228: {Indexing structures}
- G06F 16/951: Indexing; Web crawling techniques
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9538: Presentation of query results
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Users are most likely to search for documents “around” them, such as documents which are created, read, or modified by other users they work closely or collaborate with, documents on sites the user frequents, and/or documents trending around them, in addition to documents they've created or interacted with themselves. Therefore, embodiments are directed to relevance ranking of query results based on external context. A search service may receive a query and an external context list, determine a relevance value for each entry in the external context list, and perform the query, where a search index comprising items may be returned in response to performance of the query. The search service may then match entries in the external context list against associated properties of the items, compute a score for the items based on the matching, and rank results of the query based on the score computed for the items.

## Claims

### Claim 1

A method to rank query results for relevance based on external context, the method comprising:
receiving, at a server, a query and an external context list from a user via a client device, the external context list having data representing one or more entries each identifying a person, a team, a group, an organization, or a site associated with the user;
determining a relevance value for each of the one or more entries in the external context list based on an order of connection or a relationship between the individual entries and the user;
performing, by a search service, the query and generating a search index comprising items in response to performance of the query, the individual items having metadata describing properties of the individual items;
matching the one or more entries in the external context list against the metadata describing the properties of the individual items;
computing a score for the individual items based on the matching of the entries in the external context list against the metadata describing the properties of the individual items; and
transmitting to and surfacing on the client device a subset of the items in the search index each having a calculated score above a threshold and ranked based on the scores computed for the subset of items, thereby reducing processor and memory usage along with bandwidth usage due to reduced amount of communications between the server and the client device.

### Claim 2 (depends on 1)

The method of claim 1 wherein determining the relevance value for each of the one or more entries in the external context list comprises:
determining the relevance value for each of the one or more entries based on an order of connection between a person in the external context list and the user requesting the query.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
modifying a relevance value for one or more entries of the external context list in response to detecting a change in connection between the one or more entries and the user.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
implementing time decay of the relevance value for each of the one or more entries in the external context list.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
populating the search index with properties of the items by indexing the properties of the items as the metadata on the respective items within the search index.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
validating the rank of the results according to the computed scores.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
enabling the user requesting the query to interact with the ranked results of the query surfaced at the client device through a user interface of the client device.

### Claim 8 (depends on 1)

The method of claim 1 wherein computing the score for the items based on the matching comprises:
in response to a determination that an associated property of one of the items matches one of the entries of the external context list, multiplying a pre-assigned weight of the associated property by a relevance value determined for the one of the entries of the external context list to compute the score for the one of the items.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
retrieving information associated with each of the entries from one or more of a directory service, a collaboration service, a communication service, or a productivity service background framework to determine the relevance value.

### Claim 10

A method performed by a computing device to rank query results for relevance, the method comprising:
receiving, at a server, a search query and an external context list from a user via a client device, the external context list having data representing one or more entries individually identifying a person, a team, a group, an organization, or a site; and
in response to receiving the search query, at the server,
querying a database to generate a search index according to the received search query, the search index comprising one or more items having metadata identifying one or more attributes of the individual items;
determining, whether the one or more attributes of the individual items match any of the one or more entries in the external context list;
in response to determining that one of the attributes of one of the items matches one of the entries in the external context list, increasing a ranking level of the one of the items in the search index over other items in the search index; and
transmitting to and surfacing on the client device a subset of the items in the search index each having a ranking level above a threshold.

### Claim 11 (depends on 10)

The method of claim 10 wherein:
the one of the item is a document;
the metadata of the one of the items identifies an author of the document, a person created the document, or a person last modified the document; and
determining, whether the one or more attributes of the individual items match any of the one or more entries in the external context list includes determining, whether the author of the document, the person created the document, or the person last modified the document matches any of the one or more entries in the external context list.

### Claim 12 (depends on 10)

The method of claim 10 wherein:
the one of the item is a document;
the metadata of the one of the items identifies a team associated with the document; and
determining, whether the one or more attributes of the individual items match any of the one or more entries in the external context list includes determining, whether the team of the document matches any of the one or more entries in the external context list each identifying a team that the user belongs to.

### Claim 13 (depends on 10)

The method of claim 10 wherein:
the one of the item is a document;
the metadata of the one of the items identifies a group associated with the document; and
determining, whether the one or more attributes of the individual items match any of the one or more entries in the external context list includes determining, whether the group of the document matches any of the one or more entries in the external context list each identifying a group that the user belongs to.

### Claim 14 (depends on 10)

The method of claim 10, further comprising:
in response to receiving the search query, at the server, determining a relevance value for each of the entries in the external context list based on an order of connection or a closeness of relationship between each of the entries and the user; and
wherein increasing the ranking level of the one of the items includes increasing the ranking level of the one of the items according to the relevance value of the one of the entries.

### Claim 15 (depends on 10)

The method of claim 10 wherein:
one of the entries in the external context list identifies a person who interacts with the user;
the method further includes, in response to receiving the search query, at the server, determining a relevance value for the one of the entries in the external context list using time decay based on a last interaction between the person and the user; and
wherein increasing the ranking level of the one of the items includes increasing the ranking level of the one of the items according to the relevance value of the one of the entries.

### Claim 16 (depends on 10)

The method of claim 10 wherein transmitting to and surfacing on the client device includes transmitting to and surfacing on the client device the subset of the items according to corresponding ranking levels.

### Claim 17 (depends on 10)

The method of claim 10 wherein transmitting to and surfacing on the client device includes transmitting to and surfacing on the client device the subset of the items and identifying the one of the attributes of the one of the items that matched the one of the entries in the external context list.

### Claim 18

A computing device, comprising:
a processor; and
a memory operatively coupled to the processor, the memory containing instructions executable by the processor to cause the computing device to:
receive a search query and an external context list from a user via a client device, the external context list having data representing one or more entries individually identifying a person, a team, a group, an organization, or a site; and
in response to receiving the search query,
query a database to generate a search index according to the received search query from the user, the search index including multiple items individually having metadata identifying an attribute of the corresponding item;
determine, whether the attribute of the individual items matches any of the one or more entries in the external context list;
in response to determining that the attribute of one of the items matches one of the entries in the external context list, increase a ranking level of the one of the items in the search index over other items in the search index; and
transmit to the client device a subset of the items in the search index to be surfaced at the client device, each item in the subset having a ranking level above a threshold.

### Claim 19 (depends on 18)

The computing device of claim 18 wherein:
one of the items is a document;
the metadata of the one of the items identifies an author of the document, a person created the document, or a person last modified the document; and
to determine, whether the attribute of the individual items matches any of the one or more entries in the external context list includes determining, whether the author of the document, the person created the document, or the person last modified the document matches any of the one or more entries identifying a person in the external context list.

### Claim 20 (depends on 18)

The computing device of claim 18 wherein the memory includes additional instructions executable by the processor to cause the computing device to:
in response to receiving the search query, at the server, determine a relevance value for each of the entries in the external context list based on an order of connection or a closeness of relationship between each of the entries and the user; and
wherein to increase the ranking level of the one of the items includes to increase the ranking level of the one of the items according to the relevance value of the one of the entries.
