# US 11,907,236 B2 · Systems and methods for fuzzy search without full text

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

- Number: US 11,907,236 B2
- Document ID: US11907236B2
- Status: Granted
- Kind: B2
- Application number: 17/811,543
- Filed: 2022-07-08
- Published: 2022-10-27
- Granted: 2024-02-20
- Earliest claimed: 2019-08-08
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Richard Lee Barnes, II
- Web page: https://patentgrep.com/patent/US11907236B2

## CPC

- G06F 16/2468: {Fuzzy queries}
- G06F 16/3346: {using probabilistic model}
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/24562: {Pointer or reference processing operations}
- G06F 16/3332: Query translation
- G06F 16/3349: Reuse of stored results of previous queries
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/6245: {Protecting personal data, e.g. for financial or medical purposes}
- G06F 40/242: Dictionaries
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and computer-readable media for fuzzy-searches on encrypted messages include maintaining, in an indexer, a dictionary of words appearing in a message history. Upon receiving a query including at least one search term, a fuzzy search of the dictionary using the at least one search term is performed to determine one or more fuzzy-matching words in the dictionary, and one or more search tokens are generated from the one or more fuzzy-matching words, the one or more search tokens including encrypted versions of the one or more fuzzy-matching words. The one or more search tokens are provided to a search service for searching a database of encrypted messages of the message history, where the at least one search term may not have an exact match with any of the words in the dictionary.

## Claims

### Claim 1

A method comprising:
receiving a query comprising at least one search term;
determining, based on a fuzzy search of words from a message history and the at least one search term, one or more words from the message history;
generating one or more search tokens from the one or more words, the one or more search tokens comprising encrypted versions of the one or more words and one or more pointers identifying locations or contexts of the one or more words; and
providing the one or more search tokens to a search service.

### Claim 2 (depends on 1)

The method of claim 1, wherein the determining the one or more words from the message history is based on a match between the words from a message history and the at least one search term.

### Claim 3 (depends on 2)

The method of claim 2, wherein the match is a partial match or variant of the one or more words.

### Claim 4 (depends on 1)

The method of claim 1, wherein a dictionary stores the words from the message history.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
updating the dictionary by including new words not currently in the dictionary or excluding words that are already stored in the dictionary.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
stemming the words from the message history.

### Claim 7 (depends on 1)

The method of claim 1, wherein words from the message history are encrypted.

### Claim 8 (depends on 1)

The method of claim 1, wherein the one or more words are unencrypted, and obtained by unencrypting encrypted messages received from a user device.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
enabling a user device to perform a fuzzy search on results of a search using the one or more search tokens.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
encrypting the one or more search tokens for sending to the search service, wherein the search service is configured to search a database of encrypted messages of the message history.

### Claim 11

A system comprising:
one or more processors; and
a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more processors, cause the one or more processors to perform operations including:
receive a query comprising at least one search term;
determine, based on a fuzzy search of words from a message history and the at least one search term, one or more words from the message history;
generate one or more search tokens from the one or more words, the one or more search tokens comprising encrypted versions of the one or more words and one or more pointers identifying locations or contexts of the one or more words; and
provide the one or more search tokens to a search service.

### Claim 12 (depends on 11)

The system of claim 11, wherein the determining the one or more words from the message history is based on a match between the words from a message history and the at least one search term.

### Claim 13 (depends on 12)

The system of claim 12, wherein the match is a partial match or variant of the one or more words.

### Claim 14 (depends on 11)

The system of claim 11, wherein a dictionary stores the words from the message history.

### Claim 15 (depends on 14)

The system of claim 14, further comprising instructions, which when executed by the at least one processor, causes the at least one processor to:
update the dictionary by including new words not currently in the dictionary or excluding words that are already stored in the dictionary.

### Claim 16 (depends on 14)

The system of claim 14, further comprising instructions, which when executed by the at least one processor, causes the at least one processor to:
stem the words from the message history.

### Claim 17 (depends on 11)

The system of claim 11, wherein words from the message history are encrypted.

### Claim 18 (depends on 11)

The system of claim 11, wherein the one or more words are unencrypted, and obtained by unencrypting encrypted messages received from a user device.

### Claim 19 (depends on 11)

The system of claim 11, further comprising instructions, which when executed by the at least one processor, causes the at least one processor to:
enable a user device to perform a fuzzy search on results of a search using the one or more search tokens.

### Claim 20

A non-transitory machine-readable storage medium, including instructions which when executed by at least one processor, causes the at least one processor to:
receive a query comprising at least one search term;
determine, based on a fuzzy search of words from a message history and the at least one search term, one or more words from the message history;
generate one or more search tokens from the one or more words, the one or more search tokens comprising encrypted versions of the one or more words and one or more pointers identifying locations or contexts of the one or more words; and
provide the one or more search tokens to a search service.
