Intelligent data caching for typeahead search
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving a first search query from a user;
obtaining a plurality of first search results in response to the first search query from an index server;
determining whether the plurality of first search results are a substantially exhausted list of results for the first search query;
caching the plurality of first search results in a cache storage if the plurality of first search results are the substantially exhausted list of results for the first search query;
receiving a second search query from the user;
determining whether the second search query is a refined query of the first search query, wherein the determining comprises;
generating one or more prefix queries based on the second search query;
calculating prefix hashes for the prefix queries based on symbolic expressions for the prefix queries and a hash of the first search query based on a symbolic expression for the first search query; and
determining whether one of the prefix hashes matches the hash of the first search query; and
searching the plurality of first search results cached in the cache storage for at least one second search result in response to the second search query.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for providing low latency incremental search results are disclosed herein. According to one embodiment, a method for incremental search includes receiving a first search query from a user, obtaining a plurality of first search results in response to the first search query from an index server, determining whether the plurality of first search results are a substantially exhausted list of results for the first search query, and caching the plurality of first search results in a cache storage if the plurality of first search results are the substantially exhausted list of results for the first search query.
17 Citations
13 Claims
-
1. A computer-implemented method comprising:
-
receiving a first search query from a user; obtaining a plurality of first search results in response to the first search query from an index server; determining whether the plurality of first search results are a substantially exhausted list of results for the first search query; caching the plurality of first search results in a cache storage if the plurality of first search results are the substantially exhausted list of results for the first search query; receiving a second search query from the user; determining whether the second search query is a refined query of the first search query, wherein the determining comprises; generating one or more prefix queries based on the second search query; calculating prefix hashes for the prefix queries based on symbolic expressions for the prefix queries and a hash of the first search query based on a symbolic expression for the first search query; and determining whether one of the prefix hashes matches the hash of the first search query; and searching the plurality of first search results cached in the cache storage for at least one second search result in response to the second search query. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for incremental search comprising:
-
receiving a plurality of initial keystrokes from a user device; obtaining, from an index server, a plurality of first search results based on a first search query including the initial keystrokes; caching the plurality of first search results in a cache storage; receiving one or more additional keystrokes from the user device; generating one or more second search results by searching the first search results in the cache storage based on a second search query including the initial keystrokes and additional keystrokes; determining whether the plurality of first search results are a substantially exhausted list of result for the first search query, wherein a number of the first search results is less than or equal to a predetermined proportion of a number of results requested from the index server; determining whether to process the second search query by searching the first search results from the cache storage, wherein the determining comprises; generating one or more prefix queries based on the second search query; calculating prefix hashes for the prefix queries based on symbolic expressions for the prefix queries and a hash of the first search query based on a symbolic expression for the first search query; and determining whether one of the prefix hashes matches the hash of the first search query; and transmitting the second search results to the user device in real time. - View Dependent Claims (9, 10)
-
-
11. A computer server for incremental search comprising:
-
a networking component configured for receiving a plurality of initial keystrokes and later one or more additional keystrokes from a user device; the networking component being further configured for obtaining from an index server a plurality of first search results based on a first search query including the initial keystrokes; a cache storage configured for caching the plurality of first search results; a processor; and a memory storing instructions which, when executed by the processor, cause the computer server to perform a process including; generating one or more second search results by searching the first search results in the cache storage based on a second search query including the initial keystrokes and additional keystrokes; determining whether the plurality of first search results are a substantially exhausted list of result for the first search query, wherein a number of the first search results is less than or equal to a predetermined proportion of a number of results requested from the index server; determining processing the second search query by searching the first search results from the cache storage, wherein the determining comprise; generating one or more prefix queries by trimming one or more characters from an end of the second search query; calculating prefix hashes for the prefix queries based on symbolic expressions for the prefix queries and a hash of the first search query based on a symbolic expression for the first search query; and determining whether one of the prefix hashes matches a hash of the first search query stored in the index server; and wherein the networking component is further configured for transmitting the second search results to the user device in real time. - View Dependent Claims (12, 13)
-
Specification