IP Library Granted Patent US 9,959,357
Granted Patent B2
US 9,959,357 · App. 14/856,295 · Granted May 1, 2018

Personal content item searching system and method

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,959,357
App. No.
14/856,295
Granted
May 1, 2018
Kind
B2
Abstract

Enable using a user computer to search the user's personal content items hosted by an online content management service, the online content management service having an indexer computer configured to generate a base index of the user's content items hosted by the service, a base index server computer configured to transmit the generated base index over a network to the user computer, an index mutation generator computer configured to generate index mutations for subsequent changes to user's hosted content items, and an index mutation sever computer configured to transmit the generated index mutations over the network to the user computer. In one aspect, the system and method enable searches of the user's hosted content items and changes thereto to be conducted at the user computer using an index local to the user computer constructed based on the base index and the index mutations received by the user computer.

Claims (95)

1. A method, comprising:

at a server system having one or more processors and memory storing one or more programs executed by the one or more processors, performing the operations of:

generating, for each user account of a plurality of user accounts, an index of content items associated with the each user account;

wherein each user account, of the plurality of user accounts, is associated with one or more content item namespaces and one or more user computers;

sending each index, of the generated indexes, to at least one user computer, of the one or more user computers, associated with the user account for which the each index is generated;

wherein a plurality of changes are made to a plurality of content items, wherein the plurality of changes comprises more than one change to at least one content item of the plurality of content items, each content item of the plurality of content items associated with one or more user accounts of the plurality of user accounts; and

for at least one change to a changed content item of the plurality of changes, generating, storing, and sending index mutation information reflecting the at least one change, the index mutation information comprising (a) one or more tokens to now use to index the changed content item, the one or more tokens to now use included in a set of tokens for a current version of the content item but not included in a set of tokens for a prior version of the content item or (b) one or more tokens to no longer use to index the changed content item, the one or more tokens to no longer use not included in a set of tokens for a current version of the content item but included in a set of tokens for a prior version of the content item, or (c) both (a) one or more tokens to now use to index the changed content item, the one or more tokens to now use included in a set of tokens for a current version of the content item but not included in a set of tokens for a prior version of the content item and (b) one or more tokens to no longer use to index the changed content item, the one or more tokens to no longer use not included in a set of tokens for a current version of the content item but included in a set of tokens for a prior version of the content item, the index mutation information sent to at least one user computer, of the one or more user computers, associated with each user account, of the plurality of user accounts, associated with a content item namespace to which the changed content item belongs.

2. The method of claim 1 , wherein the sending the index mutation information comprises sending the index mutation information to each of a first user computer, of the one or more user computers, associated with a first user account, of the plurality of user accounts, and a second user computer, of the one or more user computers, associated with a second user account, of the plurality of user accounts.

3. The method of claim 1 , further comprising, for each change to the changed content item of the plurality of changes:

determining at least one of the one or more tokens to now use to index the changed content item or the one or more tokens to no longer use to index the changed content item; and

determining a change timestamp associated with the change to the changed content item.

4. The method of claim 3 , further comprising:

comparing an index timestamp associated with the index sent to the at least one user computer with the change timestamp associated with the change to the changed content item; and

when the index timestamp is prior in time to the change timestamp, performing the sending the index mutation information to the at least one user computer.

5. The method of claim 1 , wherein the changed content item comprises a modification of a first version of the changed content item to a second version of the changed content item, and further comprising:

tokenizing the first version of the changed content item to generate a first set of one or more tokens;

tokenizing the second version of the changed content item to generate a second set of one or more tokens;

identifying, as a third set of one or more tokens, one or more tokens in the second set of the one or more tokens that are not in the first set of the one or more tokens;

wherein the one or more tokens to now use to index the changed content item comprises the third set of the one or more tokens;

identifying, as a fourth set of one or more tokens, one or more tokens in the first set of the one or more tokens that are not in the second set of the one or more tokens; and

wherein the one or more tokens to no longer use to index the changed content item comprises the fourth set of the one or more tokens.

6. The method of claim 1 , wherein the changed content item comprises an addition of a new content item associated with one or more user accounts;

the method further comprising tokenizing the new content item to generate a first set of one or more tokens;

wherein the one or more tokens to now use to index the changed content item comprises the first set of the one or more tokens; and

wherein the sending the index mutation information comprises not sending the one or more tokens to no longer use to index the changed content item to the at least one user computer.

7. The method of claim 1 , wherein the changed content item comprises a deletion of the changed content item;

the method further comprising tokenizing the changed content item to generate a first set of one or more tokens;

wherein the one or more tokens to no longer use to index the changed content item comprises the first set of one or more tokens; and

wherein the sending the index mutation information comprises not sending the one or more tokens to now use to index the changed content item to the at least one user computer.

8. The method of claim 1 , further comprising:

generating a second index to replace the index sent to the at least one user computer, wherein the second index reflects at least the changed content item;

sending the second index to the at least one user computer; and

wherein generating the second index is performed when one or more of the following condition occurs: an index regeneration timer associated with the index has expired, a threshold number of changes to the content items associated with the user account has been exceeded, or a threshold rate of change of changes to the content items associated with the user account has been exceeded.

9. One or more non-transitory computer-readable media storing one or more programs which, when executed by one or more processors, cause performance of:

generating, for each user account of a plurality of user accounts, an index of content items associated with the each user account;

wherein each user account, of the plurality of user accounts, is associated with one or more content item namespaces and one or more user computers;

sending each index, of the generated indexes, to at least one user computer, of the one or more user computers, associated with the user account for which the each index is generated;

wherein a plurality of changes are made to a plurality of content items, wherein the plurality of changes comprises more than one change to at least one content item of the plurality of content items, each content item of the plurality of content items associated with one or more user accounts of the plurality of user accounts; and

for at least one change to a changed content item of the plurality of changes, generating, storing, and sending index mutation information reflecting the at least one change, the index mutation information comprising (a) one or more tokens to now use to index the changed content item, the one or more tokens to now use included in a set of tokens for a current version of the content item but not included in a set of tokens for a prior version of the content item or (b) one or more tokens to no longer use to index the changed content item, the one or more tokens to no longer use not included in a set of tokens for a current version of the content item but included in a set of tokens for a prior version of the content item, or (c) both (a) one or more tokens to now use to index the changed content item, the one or more tokens to now use included in a set of tokens for a current version of the content item but not included in a set of tokens for a prior version of the content item and (b) one or more tokens to no longer use to index the changed content item, the one or more tokens to no longer use not included in a set of tokens for a current version of the content item but included in a set of tokens for a prior version of the content item, the index mutation information sent to at least one user computer, of the one or more user computers, associated with each user account, of the plurality of user accounts, associated with a content item namespace to which the changed content item belongs.

10. The one or more non-transitory computer-readable media of claim 9 , wherein the sending the index mutation information comprises sending the index mutation information to each of a first user computer, of the one or more user computers, associated with a first user account, of the plurality of user accounts, and a second user computer, of the one or more user computers, associated with a second user account, of the plurality of user accounts.

11. The one or more non-transitory computer-readable media of claim 9 , wherein the one or more programs, when executed by the one or more processors, further cause performance of:

for each change to the changed content item of the plurality of changes, determining at least (a) the one or more tokens to now use to index the changed content item or (b) the one or more tokens to no longer use to index the changed content item, or (c) both (a) one or more tokens to now use to index the changed content item and (b) one or more tokens to no longer use to index the changed content item; and

determining a change timestamp associated with the change to the changed content item.

12. The one or more non-transitory computer-readable media of claim 11 , wherein the one or more programs, when executed by the one or more processors, further cause performance of:

comparing an index timestamp associated with the index sent to the at least one user computer with the change timestamp associated with the change to the changed content item; and

when the index timestamp is prior in time to the change timestamp, performing the sending of the index mutation information to the at least one user computer.

13. The one or more non-transitory computer-readable media of claim 9 , wherein the changed content item comprises a modification of a first version of the changed content item to a second version of the changed content item, and further comprising:

tokenizing the first version of the changed content item to generate a first set of one or more tokens;

tokenizing the second version of the changed content item to generate a second set of one or more tokens;

identifying, as a third set of one or more tokens, one or more tokens in the second set of the one or more tokens that are not in the first set of the one or more tokens;

wherein the one or more tokens to now use to index the changed content item comprises the third set of the one or more tokens;

identifying, as a fourth set of one or more tokens, one or more tokens in the first set of the one or more tokens that are not in the second set of the one or more tokens; and

wherein the one or more tokens to no longer use to index the changed content item comprises the fourth set of the one or more tokens.

14. The one or more non-transitory computer-readable media of claim 9 , wherein the changed content item comprises an addition of a new content item associated with one or more user accounts;

the one or more programs, when executed by the one or more processors further causing performance of tokenizing the new content item to generate a first set of one or more tokens;

wherein the one or more tokens to now use to index the changed content item comprises the first set of the one or more tokens; and

wherein the sending the index mutation information comprises not sending the one or more tokens to no longer use to index the changed content item to the at least one user computer.

15. The one or more non-transitory computer-readable media of claim 9 , wherein the changed content item comprises a deletion of the changed content item;

the one or more programs, when executed by the one or more processors, further causing performance of tokenizing the changed content item to generate a first set of one or more tokens;

wherein the one or more tokens to no longer use to index the changed content item comprises the first set of one or more tokens; and

wherein the sending the index mutation information comprises not sending the one or more tokens to now use to index the changed content item to the at least one user computer.

16. The one or more non-transitory computer-readable media of claim 9 , wherein the one or more programs, when executed by the one or more processors, further cause performance of:

generating a second index to replace the index sent to the at least one user computer, wherein the second index reflects at least the changed content item;

sending the second index to the at least one user computer; and

wherein generating the second index is performed when one or more of the following condition occurs: an index regeneration timer associated with the index has expired, a threshold number of changes to the content items associated with the user account has been exceeded, or a threshold rate of change of changes to the content items associated with the user account has been exceeded.

17. A system, comprising:

one or more processors; and

one or more storage media storing one or more programs for execution by the one or more processors, the one or more programs configured to:

generate, for each user account of a plurality of user accounts, an index of content items associated with the each user account;

wherein each user account, of the plurality of user accounts, is associated with one or more content item namespaces and one or more user computers, and the index of content items associated with each user account is hosted by an online content management service;

send, over a network, each index, of the generated indexes, to at least one user computer, of the one or more user computers, associated with the user account for which the each index is generated;

wherein a plurality of changes are made to a plurality of content items, wherein the plurality of changes comprises more than one change to at least one content item of the plurality of content items, each content item of the plurality of content items associated with one or more user accounts of the plurality of user accounts; and

for at least one change to a changed content item of the plurality of changes, generate, store, and send index mutation information reflecting the at least one change, the index mutation information comprising (a) one or more tokens to now use to index the changed content item, the one or more tokens to now use included in a set of tokens for a current version of the content item but not included in a set of tokens for a prior version of the content item or (b) one or more tokens to no longer use to index the changed content item, the one or more tokens to no longer use not included in a set of tokens for a current version of the content item but included in a set of tokens for a prior version of the content item, or (c) both (a) one or more tokens to now use to index the changed content item, the one or more tokens to now use included in a set of tokens for a current version of the content item but not included in a set of tokens for a prior version of the content item and (b) one or more tokens to no longer use to index the changed content item, the one or more tokens to no longer use not included in a set of tokens for a current version of the content item but included in a set of tokens for a prior version of the content item, the index mutation information sent to at least one user computer, of the one or more user computers, associated with each user account, of the plurality of user accounts, associated with a content item namespace to which the changed content item belongs.

18. The system of claim 17 , wherein the one or more programs are further configured to send the index mutation information to each of a first user computer, of the one or more user computers, associated with a first user account, of the plurality of user accounts, and a second user computer, of the one or more user computers, associated with a second user account, of the plurality of user accounts.

19. The system of claim 17 , wherein for each change to the changed content item of the plurality of changes; and wherein the one or more programs are further configured to:

determine at least one of the one or more tokens to now use to index the changed content item or the one or more tokens to no longer use to index the changed content item; and

determine a change timestamp associated with the change to the changed content item.

20. The system of claim 19 , wherein the one or more programs are further configured to:

compare an index timestamp associated with the index sent to the at least one user computer with the change timestamp associated with the change to the changed content item; and

when the index timestamp is prior in time to the change timestamp, send the index mutation information to the at least one user computer.

21. The system of claim 17 , wherein the changed content item comprises a modification of a first version of the changed content item to a second version of the changed content item; and wherein the one or more programs are further configured to:

tokenize the first version of the changed content item to generate a first set of one or more tokens;

tokenize the second version of the changed content item to generate a second set of one or more tokens;

identify, as a third set of one or more tokens, one or more tokens in the second set of the one or more tokens that are not in the first set of the one or more tokens;

wherein the one or more tokens to now use to index the changed content item comprises the third set of the one or more tokens;

identify, as a fourth set of one or more tokens, one or more tokens in the first set of the one or more tokens that are not in the second set of the one or more tokens; and

wherein the one or more tokens to no longer use to index the changed content item comprises the fourth set of the one or more tokens.

22. The system of claim 17 , wherein the changed content item comprises an addition of a new content item associated with one or more user accounts; and wherein the one or more programs are further configured to:

tokenize the new content item to generate a first set of one or more tokens;

wherein the one or more tokens to now use to index the changed content item comprises the first set of the one or more tokens; and

not send the one or more tokens not to use to index the changed content item to the at least one user computer.

23. The system of claim 17 , wherein the changed content item comprises a deletion of the changed content item; and wherein the one or more programs are further configured to:

tokenize the changed content item to generate a first set of one or more tokens;

wherein the one or more tokens not to use to index the changed content item comprises the first set of one or more tokens; and

not send the one or more tokens to use to index the changed content item to the at least one user computer.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2018
From: GOEL, SAMIR; CHASTAGNOL, FRANCK; AGRAWAL, ABHISHEK
To: DROPBOX, INC.
Reel/Frame 047252/0238 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →