# US 10,120,870 B2 · System and method for searching distributed files across a plurality of clients

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

- Number: US 10,120,870 B2
- Document ID: US10120870B2
- Status: Granted
- Kind: B2
- Application number: 14/880,243
- Filed: 2015-10-11
- Published: 2017-04-13
- Granted: 2018-11-06
- Earliest claimed: 2015-10-11
- Assignees: Noggle, Inc.
- Applicants: Noggle AG
- Inventors: Lars von Thienen
- Web page: https://patentgrep.com/patent/US10120870B2

## CPC

- G06F 16/148: {File search processing}
- G06F 16/134: {Distributed indices}
- G06F 16/182: Distributed file systems
- G06F 16/2228: {Indexing structures}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system for searching files across clients includes a server coupled to multiple clients. A first client creates a first index of files that are stored on the first client and uploads the first index to the server. A second client creates a second index of files that are stored on the second client. The second client downloads the first index from the server and executes a search across the first index and the second index. A method for searching files across clients includes generating and storing on a first client an index of locally stored files; uploading the index from the first client to a server; storing the index on the server; downloading the index from the server to the second client; and performing a search for files stored on the first client by querying the index downloaded onto the second client.

## Claims

### Claim 1

A method for searching files across multiple clients, comprising:
coupling a server to communicate over a network with a plurality of clients, the plurality of client comprising at least a first client that contains locally stored files, and a second client seeking information within the files of the first client;
generating and storing on the first client an index of the locally stored files;
uploading the index from the first client to the server;
storing the index in an index vault on the server;
generating meta data on the first client identifying which other clients are authorized to access the index generated by the first client;
uploading the meta data from the first client to the server;
processing the meta data on the server and maintaining an access control database on the server which associates index files with an identity of clients authorized to download the index files;
authenticating the second client by the server;
allowing the second client to download the index file generated by the first client only if the meta data in the access control database identifies the second client as an authorized user;
creating on the server a list of shared index files that the second client is authorized to access by querying the access control database;
downloading from the server to the second client the list of shared index files;
providing a user interface on the second client to select index files from the list of shared index file for download;
downloading the index from the server to the second client;
providing a user interface on the second client allowing a user to enter keywords for performing the search for files stored on the first client;
performing a search for files stored on the first client by querying the index downloaded onto the second client; and
displaying search results on the second client in form of text.

### Claim 2 (depends on 1)

The method as in claim 1, further comprising providing a user interface on the first client for selecting a subset of files stored on the first client to be included in the index of the locally stored files.

### Claim 3 (depends on 1)

The method as in claim 1, further comprising:
encrypting the index of the locally stored files with an encryption key in the first client before uploading the index to the server;
exchanging the encryption key between the first client and the second client without storing the encryption key on the server; and
decrypting, on the second client, the index downloaded from the server with the encryption key received from the first client.

### Claim 4

A method for searching files across multiple clients, comprising:
coupling a server to communicate over a network with a plurality of clients, the plurality of client comprising at least a first client that contains locally stored files, and a second client seeking information within the files of the first client;
generating and storing on the first client an index of the locally stored files;
uploading the index from the first client to the server;
storing the index in an index vault on the server;
generating meta data on the first client identifying which other clients are authorized to access the index generated by the first client;
uploading the meta data from the first client to the server;
processing the meta data on the server and maintaining an access control database on the server which associates index files with an identity of clients authorized to download the index files;
authenticating the second client by the server;
allowing the second client to download the index file generated by the first client only if the meta data in the access control database identifies the second client as an authorized user;
creating on the server a list of shared index files that the second client is authorized to access by querying the access control database;
downloading from the server to the second client the list of shared index files;
providing a user interface on the second client to select index files from the list of shared index file for download;
downloading the index from the server to the second client;
providing a user interface on the second client allowing a user to enter keywords for performing the search for files stored on the first client;
performing a search for files stored on the first client by querying the index downloaded onto the second client; and
displaying search results on the second client in form of a knowledge map.
