# US 2012/0084291 A1 · Applying search queries to content sets

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

- Number: US 2012/0084291 A1
- Document ID: US20120084291A1
- Status: Published application
- Kind: A1
- Application number: 12/895,360
- Filed: 2010-09-30
- Published: 2012-04-05
- Earliest claimed: 2010-09-30
- Assignees: Microsoft Corporation
- Inventors: Wook Jin Chung; Michael Joseph Papale; Sergio Mario Diaz-Cuellar; Colin Clayton Tidd; Chad Steven Estes; Jordan Marchese
- Web page: https://patentgrep.com/patent/US20120084291A1

## CPC

- G06F 16/14: Details of searching files based on file metadata
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Queries applied to content sets (e.g., files in a filesystem) often produce search results including many content items having identifiers that match the keywords of the query. However, many search techniques do not account for the relevance of the matching, e.g., whether the match is predictably relevant to the user, or whether the content item only tangentially matches the query. The techniques presented herein involve indexing the content items in a content index according to various identifiers having an identifier weight indicating the predicted relevance if a token of a query matches the identifier. Candidate content items may then be presented as search results sorted by the aggregated identifier weights of the matching identifiers, thereby promoting highly relevant content items and demoting incidentally matching content items. Additional adjustments may be made (e.g., promoting content items that match a particularly infrequent token or that match a phrase in the query).

## Claims

### Claim 1

A method of evaluating queries comprising at least one token against at least one content set respectively comprising at least one content item respectively having at least one identifier on a device having a processor and a content index, comprising:
executing on the processor instructions configured to:
for respective content items, index the content item in the content index according to at least one identifier having an identifier weight; and
upon receiving a query:
identify candidate content items indexed in the content index by, for respective tokens of the query, at least an identifier portion of an identifier matching the token;
for respective candidate content items, calculate a rank score according to the identifier weights of the identifiers matching the tokens of the query; and
present the candidate content items sorted according to the rank scores.

### Claim 2 (depends on 1)

The method of claim 1:
the query provided in a search context associated with at least one identifier; and
calculating the rank score comprising: for respective candidate content items, raising the identifier weights of identifiers of candidate content items matching at least one token of the query and associated with the search context.

### Claim 3 (depends on 1)

The method of claim 1, calculating the rank score comprising: raising the rank scores of popular candidate content items.

### Claim 4 (depends on 1)

The method of claim 1, comprising:
upon receiving a second query related to the query:
remove from the candidate content items at least zero removed candidate content items that, for at least one second query token included in the second query and not included in the query, are not indexed by at least one identifier portion matching the second query token;
insert into the candidate content items at least zero added candidate content items that are indexed in the content index by, for respective tokens of the second query, at least an identifier portion of an identifier matching the token, and that, for at least one first query token included in the query and not included in the second query, are not indexed by at least one identifier portion matching the first query token;
for respective candidate content items, calculate a second rank score according to the identifier weights of the identifiers matching the tokens of the second query; and
present the candidate content items sorted according to the second rank scores.

### Claim 5 (depends on 1)

The method of claim 1:
the at least one content set comprising a locally stored content item set comprising content items of a content item type;
the content item type of at least one content item comprising a custom item type associated with an application; and
the instructions configured to, upon receiving from the application a request to index a content item of the custom item type according to at least one custom identifier, index the content item in the content index according to at least one custom identifier.

### Claim 6 (depends on 1)

The method of claim 1:
a content item comprising a name having at least one name component; and
the instructions configured to index the content item in the content index according to:
the name of the content item, and
respective name components of the name of the content item.

### Claim 7 (depends on 6)

The method of claim 6, the instructions configured to:
index the name of the content item as an identifier having a high identifier weight; and
match respective name components of the name of the content item with a low identifier weight that is lower than the high identifier weight of the name of the content item.

### Claim 8 (depends on 1)

The method of claim 1:
identifying the candidate content items comprising:
for respective tokens of the query, identify candidate content items indexed in the content index by at least an identifier portion of an identifier matching the token;
for the query, identify candidate content items indexed in the content index by at least an identifier portion of an identifier matching the token; and
calculating the rank scores comprising: for respective candidate content items, adding the identifier weights of the identifiers matching the respective tokens of the query and the query.

### Claim 9 (depends on 1)

The method of claim 1:
the instructions configured to sort the candidate content items according to a name length of a name of the respective candidate content items; and
presenting the candidate content items comprising: presenting the candidate content items stably sorted according to the rank scores after sorting the candidate content items according to the name length of the names of the respective content items.

### Claim 10 (depends on 1)

The method of claim 1, presenting the candidate content items comprising: presenting with respective candidate content items the identifiers matching the tokens of the query.

### Claim 11 (depends on 10)

The method of claim 10, presenting the candidate content items comprising: emphasizing identifier portions of the identifiers of the candidate content items matching the tokens of the query.

### Claim 12 (depends on 1)

The method of claim 1, calculating the rank score of a candidate content item comprising: raising the identifier weights of identifiers matching more than one token of the query.

### Claim 13 (depends on 1)

The method of claim 1:
at least one content item identified by a first identifier portion sequentially followed by a second identifier portion;
the query comprising a first token sequentially followed by a second token; and
calculating the rank score of a candidate content item comprising: raising the identifier weights of identifiers having a second identifier portion sequentially following the first identifier portion and matching the second token sequentially following the first token matching the first identifier portion.

### Claim 14 (depends on 13)

The method of claim 13, raising the identifier weight of the identifiers comprising: raising the identifier weights of identifiers having a second identifier portion directly sequentially following the first identifier portion and matching the second token directly sequentially following the first token matching the first identifier portion.

### Claim 15 (depends on 13)

The method of claim 13, raising the identifier weight of the identifiers comprising: raising the identifier weights of identifiers having a second identifier portion sequentially following the first identifier portion and matching the second token sequentially following the first token proportional to a proximity of the second identifier portion with the first identifier portion.

### Claim 16 (depends on 1)

The method of claim 1, calculating the rank score of a candidate content item comprising: raising the identifier weights of identifiers fully matching the query.

### Claim 17 (depends on 1)

The method of claim 1, calculating the rank score of a candidate content item comprising: raising the identifier weights of identifiers matching a token proportionally to a percentage of an identifier portion of the identifier matched by the token.

### Claim 18 (depends on 1)

The method of claim 1, calculating the rank score of a candidate content item comprising: raising the identifier weights of identifiers matching a token inversely proportionally to a content item count of content items having at least one identifier matching the token.

### Claim 19

A system configured to evaluate queries comprising at least one token against at least one content set respectively comprising at least one content item respectively having at least one identifier on a device having a content index, the system comprising:
a content item indexing component configured to, for respective content items, index the content item in the content index according to at least one identifier having an identifier weight;
a content item evaluating component configured to, upon receiving a query:
identify candidate content items indexed in the content index by, for respective tokens of the query, at least an identifier portion of an identifier matching the token, and
for respective candidate content items, calculate a rank score according to the identifier weights of the identifiers matching the tokens of the query; and
a search result presenting component configured to, in response to the query, present the candidate content items sorted according to the rank scores.

### Claim 20

A computer-readable storage medium comprising instructions that, when executed on a processor of a device having a memory component storing a content index, evaluate queries comprising at least one token against at least one locally stored content set respectively comprising at least one content item of a content item type and having at least one identifier including a name having at least one name component, at least one content item having a custom content item type associated with an application, by:
for respective content items:
indexing the content item in the content index according to the name having a high identifier weight;
indexing the content item in the content index according to at least one name component having a low identifier weight that is lower than the high identifier weight of the name of the content item;
indexing the content item in the content index according to at least one identifier having an identifier weight; and
if the content item was received from an application with a request to index a content item of the custom item type according to at least one custom identifier, indexing the content item in the content index according to at least one custom identifier;
upon receiving a query in a search context associated with at least one identifier:
identifying candidate content items indexed in the content index by:
for respective tokens of the query, identify candidate content items indexed in the content index by at least an identifier portion of an identifier matching the token; and
for the query, identify candidate content items indexed in the content index by at least an identifier portion of an identifier matching the token;
for respective candidate content items, calculating a rank score according to the identifier weights of the identifiers matching the tokens of the query by:
adding the identifier weights of the identifiers matching the respective tokens of the query and the query;
raising the identifier weights of identifiers matching more than one token of the query;
raising the identifier weights of identifiers having a second identifier portion sequentially following a first identifier portion and matching a second token sequentially following a first token in the query and matching the first identifier portion by:
raising the identifier weights of identifiers having a second identifier portion directly sequentially following the first identifier portion and matching the second token directly sequentially following the first token matching the first identifier portion; and
raising the identifier weights of identifiers having a second identifier portion sequentially following the first identifier portion and matching the second token sequentially following the first token proportional to a proximity of the second identifier portion with the first identifier portion;
raising the identifier weights of identifiers fully matching the query;
raising the identifier weights of identifiers matching a token proportionally to a percentage of an identifier portion of the identifier matched by the token;
raising the identifier weights of identifiers matching a token inversely proportionally to a content item count of content items having at least one identifier matching the token;
raising the identifier weights of identifiers of candidate content items matching at least one token of the query and associated with the search context; and
raising the rank scores of popular candidate content items;
presenting the candidate content items by:
sorting the candidate content items according to a name length of a name;
stably sorting the candidate content items according to the rank scores; and
presenting the candidate content items with respective identifiers matching the tokens of the query and emphasizing identifier portions of the identifiers of the candidate content items matching the tokens of the query; and
upon receiving a second query related to the query:
remove from the candidate content items at least zero removed candidate content items that, for at least one second query token included in the second query and not included in the query, are not indexed by at least one identifier portion matching the second query token;
insert into the candidate content items at least zero added candidate content items that are indexed in the content index by, for respective tokens of the second query, at least an identifier portion of an identifier matching the token, and that, for at least one first query token included in the query and not included in the second query, are not indexed by at least one identifier portion matching the first query token;
for respective candidate content items, calculate a second rank score according to the identifier weights of the identifiers matching the tokens of the second query; and
present the candidate content items sorted according to the second rank scores.
