Bloom filter for storing file access history
First Claim
1. A method performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors to perform the method, comprising:
- retrieving a list of results responsive to a search request from a user at a first client;
applying a multi-user Bloom filter to results in the list of results to identify one or more first results, if any, in the list of results that the user has previously accessed, wherein applying the multi-user Bloom filter to results in the list of results includes applying a plurality of hash functions to a value, which includes a user identifier of the user and a content identifier associated with a respective result, to produce a plurality of location values, and accessing the plurality of locations in the multi-user Bloom filter;
generating a result list comprising at least a portion of the list of results, based at least in part on the identified one or more first results; and
sending the result list to the first client.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of producing a search query result that incorporates information about previously accessed search results includes retrieving a list of results responsive to a search request from a user at a first client. A Bloom filter is applied to the results in the list of results to identify one or more first results, if any, in the list of results that the user has previously accessed. A result list is generated. The result list includes at least a portion of the list of results, based at least in part on the identified one or more first results. The result list is sent to the first client.
-
Citations
23 Claims
-
1. A method performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors to perform the method, comprising:
-
retrieving a list of results responsive to a search request from a user at a first client; applying a multi-user Bloom filter to results in the list of results to identify one or more first results, if any, in the list of results that the user has previously accessed, wherein applying the multi-user Bloom filter to results in the list of results includes applying a plurality of hash functions to a value, which includes a user identifier of the user and a content identifier associated with a respective result, to produce a plurality of location values, and accessing the plurality of locations in the multi-user Bloom filter; generating a result list comprising at least a portion of the list of results, based at least in part on the identified one or more first results; and sending the result list to the first client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 23)
-
-
10. A method performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors to perform the method, comprising:
-
in response to search requests from each of a plurality of users at respective clients, retrieving a list of results responsive to each of the search request, including a first list of results responsive to a first search request from a first user at a first client and a second list of results responsive to a second search request from a second user at a second client; filtering results in the first list of results and results in the second list of results with a shared Bloom filter to produce a first filtered result list, comprising at least a portion of the first list of results, and a second filtered result list, comprising at least a portion of the second list of results; sending the first filtered result list to the first client; and sending the second filtered result list to the second client. - View Dependent Claims (11, 12, 13)
-
-
14. A method performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors to perform the method, comprising:
-
receiving a plurality of requests from a plurality of clients, each request comprising a request for a respective item by a respective client of the plurality of clients; for each received request, sending the requested respective item to the respective client; and updating a Bloom filter associated with the plurality of clients to indicate each respective item sent to a respective client, including storing in an array a plurality of values for each of the retrieved items, wherein updating the Bloom filter includes hashing a value comprising a combination of a plurality of values, including an item identifier representing an item sent to a respective client and a user identifier representing the respective client. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A computer system comprising:
-
memory; one or more processors; and one or more programs stored in the memory to be executed by the one or more processors, the one or more programs including; instructions for retrieving a list of results responsive to a search request from a user at a first client; instructions for concatenating a user identifier with a content identifier for each result in the list of results to produce a plurality of concatenated results; instructions for applying a multi-user Bloom filter to the concatenated results to identify one or more first results, if any, in the list of results that the user has previously accessed; instructions for generating a result list comprising at least a portion of the list of results, based at least in part on the identified one or more first results; and instructions for sending the result list to the first client.
-
-
22. A non-transitory computer-readable storage medium storing one or more programs for execution by one or more processors of a computer system, the one or more programs comprising:
-
instructions for retrieving a list of results responsive to a search request from a user at a first client; instructions for concatenating a user identifier with a content identifier for each result in the list of results to produce a plurality of concatenated results; instructions for applying a multi-user Bloom filter to the concatenated results to identify one or more first results, if any, in the list of results that the user has previously accessed; instructions for generating a result list comprising at least a portion of the list of results, based at least in part on the identified one or more first results; and instructions for sending the result list to the first client.
-
Specification