# US 7,467,131 B1 · Method and system for query data caching and optimization in a search engine system

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

- Number: US 7,467,131 B1
- Document ID: US7467131B1
- Status: Granted
- Kind: B1
- Application number: 10/676,646
- Filed: 2003-09-30
- Granted: 2008-12-16
- Earliest claimed: 2003-09-30
- Assignees: Google Inc.
- Inventors: Kourosh Gharachorloo; Fay Wen Chang; Deborah Anne Wallach
- Web page: https://patentgrep.com/patent/US7467131B1

## CPC

- G06F 16/9574: {of access to content, e.g. by caching}
- Y10S 707/99933: Query processing, i.e. searching
- Y10S 707/99945: Object-oriented database structure processing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

When searching a document database in response to a search query, a determination is made as to whether a query result corresponding to the search query is stored in a cache. When the query result is stored in the cache, a reuse count for the search query is accessed. When predefined conditions are satisfied, such as the reuse count being larger than a predetermined threshold count, an improved search result is generated in accordance with a first set of predetermined searching criteria, and at least a subset of the improved search result is returned.

## Claims

### Claim 1

A method for searching a document database, comprising:
receiving a search query;
returning a search result corresponding to the search query, including:
determining whether a cached query result corresponding to the search query is stored in a cache;
when the determining returns a negative result, generating a first search result in accordance with a first set of predetermined search criteria and returning as the search result at least a subset of the first search result;
when the determining returns a positive result:
accessing a reuse count of the cached search result, and determining a quality of the cached search result; wherein the cached search result comprises a list of results that satisfy the search query, and the reuse count comprises a number of times that the list of results has been reused to respond to submissions of the search query;
when the reuse count is less than or equal to a predetermined threshold count or a quality indication of the cached search result does not meet predefined criteria, returning as the search result at least a subset of the cached search result;
when the reuse count is larger than the predetermined threshold count, and the quality indication meets the predefined criteria, generating an improved search result in accordance with a second set of predetermined search criteria using additional search resources, wherein the improved search result comprises an improved list of results that satisfy the search query, returning as the search result at least a subset of the improved search result, updating the cache with the improved search result, and updating the reuse count of the cached search result; and
when the reuse count is larger than the predetermined threshold count and the quality indication does not meet the predefined criteria and indicates that the cached search result is the improved search result corresponding to the search query, retrieving the improved search result from the cache, and returning as the search result at least a subset of the improved search result.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
when the quality indication has a first value, the cached search result is generated by searching only the document database; and
wherein the second set of search criteria comprises searching both the document database and an additional database.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
when the quality indication has a first value, the cached search result is generated by searching the document database using a standard search depth; and
the second set of predetermined search criteria comprises searching the document database with a larger search depth than the standard search depth.

### Claim 4 (depends on 1)

The method of claim 1,
wherein the first set of search criteria comprises searching the document database using initial search criteria; and
wherein the second set of predetermined search criteria comprises searching the document database using modified search criteria distinct from the initial search criteria.

### Claim 5 (depends on 1)

The method of claim 1, wherein generating an improved search result comprises:
submitting the search query to one or more document identification and document servers in accordance with the second set of predetermined search criteria;
receiving search results from the one or more document identification and document servers; and
creating a search result list from the received search results.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
when the cache is determined not to have stored therein the search result corresponding to the search query:
generating a standard search result in accordance with the first set of predetermined search criteria;
storing the standard search result in the cache;
setting the reuse count of the cached search result to an initial value; and
returning at least a subset of the standard search result.

### Claim 7 (depends on 6)

The method of claim 6, wherein generating the standard search result comprises:
submitting the search query to one or more document identification and document servers in accordance with the first set of predetermined search criteria;
receiving search results from the one or more document identification and document servers; and
creating a search result list from the received search results.

### Claim 8 (depends on 1)

The method of claim 1, wherein generating the improved search result includes searching both the document database and an additional database.

### Claim 9 (depends on 1)

The method of claim 1, wherein generating the improved search result includes searching the document database to a larger search depth than a search depth used in generating the first search result.

### Claim 10 (depends on 1)

The method of claim 1, wherein generating the improved search result includes searching using modified search criteria distinct from the initial search criteria.

### Claim 11

A method for searching a document database, comprising:
receiving a search query;
returning a search result corresponding to the search query, including:
determining whether a cached query result corresponding to the search query is stored in a cache;
when the determining returns a negative result, generating a first search result in accordance with a first set of predetermined search criteria and returning as the search result at least a subset of the first search result;
when the determining returns a positive result:
accessing a reuse count of the cached search result, and determining a quality of the cached search result; wherein the cached search result comprises a list of results that satisfy the search query, and the reuse count comprises a number of times that the list of results has been reused to respond to submissions of the search query;
when the reuse count is less than or equal to a predetermined threshold count or a quality indication of the cached search result does not meet predefined criteria, returning as the search result at least a subset of the cached search result; and
when the reuse count is larger than the predetermined threshold count, and the quality indication meets the predefined criteria, generating an improved search result in accordance with a second set of predetermined search criteria using additional search resources, wherein the improved search result comprises an improved list of results that satisfy the search query, and returning as the search result at least a subset of the improved search result, updating the cache with the improved search result, and updating the reuse count of the cached search result;
when the cache is determined not to have stored therein the search result corresponding to the search query:
generating a standard search result in accordance with the first set of predetermined search criteria;
storing the standard search result in the cache;
setting the reuse count of the cached search result to an initial value; and
returning at least a subset of the standard search result; and
when the determining returns a positive result and the reuse count is less than or equal to the predetermined threshold count:
retrieving the standard search result from the cache; and
returning at least a subset of the standard search result.

### Claim 12

A system for searching a document database, comprising:
a cache for storing search results corresponding to previously processed search queries;
a search controller including one or more computer programs containing instructions for:
determining whether a cached search result corresponding to a specified search query is stored in the cache;
returning a search result corresponding to the search query, including:
when the determining returns a negative result, generating a first search result corresponding to the search query in accordance with a first set of predetermined search criteria and returning as the search result at least a subset of the first search result;
when the determining returns a positive result:
accessing a reuse count of the cached search result and determining a quality of the cached search result; wherein the cached search result comprises a list of results that satisfy the search query, and the reuse count comprises a number of times that the list of results has been reused to respond to submissions of the search query;
when the reuse count is less than or equal to a predetermined threshold count or a quality indication of the cached search result does not meet predefined criteria, returning as the search result at least a subset of the cached search result; and
when the reuse count is larger than the predetermined threshold count and the quality indication meets the predefined criteria, generating an improved search result in accordance with a second set of predetermined search criteria using additional search resources, wherein the improved search result comprises an improved list of results that satisfy the search query, returning at least a subset of the improved search result as the search result, updating the cache with the improved search result, and updating the reuse count of the cached search result; and
when the reuse count is larger than the predetermined threshold count and the quality indication does not meet the predefined criteria and indicates that the query result stored in the cache is the improved search result corresponding to the search query, retrieving the improved search result from the cache, and returning as the search result at least a subset of the improved search result.

### Claim 13 (depends on 12)

The system of claim 12, wherein the search results in the cache comprise:
identifications of documents;
contents of portions of documents corresponding to at least a subset of the identifications of documents; and
parameters of documents corresponding to the identifications of documents.

### Claim 14 (depends on 12)

The system of claim 12, wherein:
when the quality indication has a first value, the cached search result is generated by searching only the document database; and
the second set of predetermined search criteria comprises searching both the document database and an additional database.

### Claim 15 (depends on 12)

The system of claim 12, wherein:
when the quality indication has a first value, the cached search result is generated by searching the document database using a standard search depth; and
the second set of predetermined search criteria comprises searching the document database with a larger search depth than the standard search depth.

### Claim 16 (depends on 12)

The system of claim 12,
wherein the first set of search criteria comprises searching the document database using initial search criteria; and
wherein the second set of predetermined search criteria comprises searching the document database using modified search criteria distinct from the initial search criteria.

### Claim 17 (depends on 12)

The system of claim 12, wherein generating an improved search result comprises instructions for:
submitting the search query to one or more document identification and document servers in accordance with the second set of predetermined search criteria;
receiving search results from the one or more document identification and document servers; and
creating a search result list from the received search results.

### Claim 18 (depends on 12)

The system of claim 12, the computer programs of the search controller further comprising instructions for:
when the cache is determined not to have stored therein search results corresponding to the search query:
generating a standard search result in accordance with the first set of predetermined search criteria;
storing the standard search result in the cache;
setting the reuse count of the cached search result to an initial value; and
returning at least a subset of the standard search result.

### Claim 19 (depends on 12)

The system of claim 12, wherein the instructions for generating the standard search result comprise instructions for:
submitting the search query to one or more document identification and document servers in accordance with the first set of predetermined searching criteria;
receiving search results from the one or more document identification and document servers; and
creating a search result list from the received search results.

### Claim 20 (depends on 12)

The system of claim 12, including:
one or more interface modules for receiving a search query;
one or more storage modules for storing document identifications and the corresponding documents to be searched;
wherein the search controller is configured to generate the improved search result by searching at least a subset of the stored document identifications.

### Claim 21

A system for searching a document database, comprising:
a cache for storing search results corresponding to previously processed search queries;
a search controller including one or more computer programs containing instructions for:
determining whether a cached search result corresponding to a specified search query is stored in the cache;
returning a search result corresponding to the search query, including:
when the determining returns a negative result, generating a first search result corresponding to the search query in accordance with a first set of predetermined search criteria and returning as the search result at least a subset of the first search result;
when the determining returns a positive result:
accessing a reuse count of the cached search result and determining a quality of the cached search result; wherein the cached search result comprises a list of results that satisfy the search query, and the reuse count comprises a number of times that the list of results has been reused to respond to submissions of the search query;
when the reuse count is less than or equal to a predetermined threshold count or a quality indication of the cached search result does not meet predefined criteria, returning as the search result at least a subset of the cached search result; and
when the reuse count is larger than the predetermined threshold count and the quality indication meets the predefined criteria, generating an improved search result in accordance with a second set of predetermined search criteria using additional search resources, wherein the improved search result comprises an improved list of results that satisfy the search query, returning at least a subset of the improved search result as the search result, updating the cache with the improved search result, and updating the reuse count of the cached search result; and
when the cache is determined not to have stored therein search results corresponding to the search query:
generating a standard search result in accordance with the first set of predetermined search criteria;
storing the standard search result in the cache;
setting the reuse count of the cached search result to an initial value; and
returning at least a subset of the standard search result; and
when the determining returns a positive result and the reuse count is less than or equal to the predetermined threshold count, retrieving the standard search result from the cache, and returning at least a subset of the standard search result.
