IP Library Granted Patent US 11,048,763
Granted Patent B2
US 11,048,763 · App. 16/731,374 · Granted Jun 29, 2021

Method and device for searching character string

Inventors: Duke Hongtao Dai (Shanghai, CN); Winston Lei Zhang (Shanghai, CN); Chao Chen (Shanghai, CN); Kun Wu Huang (Shanghai, CN); Jingjing Liu (Shanghai, CN)
Assignee: EMC IP Holding Company LLC
G06F16/93G06F16/319G06F16/334G06F16/38G06F16/90344
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 11,048,763
App. No.
16/731,374
Granted
Jun 29, 2021
Kind
B2
Abstract

Techniques for searching a character string involve: determining a first set of documents including a first token in the character string, and a second set of documents including a second token in the character string; and generating a third set of documents based on the first and second sets of documents, in the third set of documents: i) a document being included in the first and second sets of documents, and ii) a distance between the first and second tokens in the document being equal to a distance between the first and second tokens in the character string.

Claims (70)

1. A method of searching a character string, comprising:

determining a plurality of sets of documents at least in part by, for each token in the character string, determining a set of documents including the token;

sorting the sets of documents in the plurality of sets of documents according to the number of documents included in each set of documents;

responsive to the sorting of the sets of documents, selecting a first set of documents including a first token in the character string, and a second set of documents including a second token in the character string, wherein the first set of documents and the second set of documents have the least numbers of documents in the plurality of sets of documents; and

generating a third set of documents based on the first and second sets of documents, wherein for each document in the third set of documents:

i) the document is included in both the first set of documents and the second set of documents, and

ii) a distance between the first token and the second token in the document is equal to a distance between the first token and the second token in the character string.

2. The method according to claim 1 , wherein generating the third set of documents comprises:

selecting a candidate document that is included in both the first set of documents and the second set of documents;

determining whether a candidate distance between the first token and the second token in the candidate document is equal to the distance between the first token and the second token in the character string; and

adding the candidate document into the third set of documents in response to the candidate distance being equal to the distance between the first token and the second token in the character string.

3. The method according to claim 2 , wherein selecting the candidate document that is included in both the first set of documents and the second set of documents comprises:

obtaining an intersection of the first set of documents and the second set of documents; and

selecting the candidate document from the intersection of the first set of documents and the second set of documents.

4. The method according to claim 2 , wherein determining whether the candidate distance is equal to the distance between the first token and the second token in the character string comprises:

determining a first set of positions of the first token in the candidate document;

determining a second set of positions of the second token in the candidate document; and

determining, based on the first set of positions and the second set of positions, whether the candidate distance is equal to the distance between the first token and the second token in the character string.

5. The method according to claim 1 , further comprising:

further responsive to the sorting of the sets of documents, selecting a fourth set of documents including a third token in the character string, wherein the fourth set of documents has the least number of documents in the remaining sets of documents;

generating a fifth set of documents based on the third set of documents and the fourth set of documents, wherein for each document in the fifth set of documents:

i) the document is included in both the third set of documents and the fourth set of documents, and

ii) a distance between the first token and the third token in the document is equal to a distance between the first token and the third token in the character string, and a distance between the second token and the third token in the document is equal to a distance between the second token and the third token in the character string.

6. The method according to claim 1 , further comprising:

obtaining the first token and the second token by segmenting the character string.

7. The method according to claim 1 , further comprising:

generating new sets of documents until at least one document including all tokens in the character string is found.

8. The method according to claim 1 , further comprising:

generating new sets of documents until a number of documents in a newly generated set of documents is less than a predetermined threshold.

9. The method according to claim 1 , wherein the distance between the first token and the second token in the document is a Euclidian distance.

10. The method according to claim 1 , wherein the distance between the first token and the second token in the document is a Hamming distance.

11. The method according to claim 1 , wherein the first token and second token are adjacent to each other in the document; and

wherein the distance between the first token and the second token in the document is one.

12. The method according to claim 1 , further comprising searching a position list for each document that records token positions in the document.

13. An electronic device comprising:

a processing unit configured to:

determine a plurality of sets of documents at least in part by, for each token in the character string, determining a set of documents including the token;

sort the sets of documents in the plurality of sets of documents according to the number of documents included in each set of documents;

responsive to the sorted sets of documents, select a first set of documents including a first token in the character string, and a second set of documents including a second token in the character string, wherein the first set of documents and the second set of documents have the least numbers of documents in the plurality of sets of documents; and

generate a third set of documents based on the first set of documents and the second set of documents, wherein for each document in the third set of documents:

i) the document is included in both the first set of documents and the second set of documents, and

ii) a distance between the first token and the second token in the document is equal to a distance between the first token and the second token in the character string.

14. The device according to claim 13 , wherein the processing unit is further configured to:

select a candidate document that is included in both the first set of documents and the second set of documents;

determine whether a candidate distance between the first token and the second token in the candidate document is equal to the distance between the first token and the second token in the character string; and

add the candidate document into the third set of documents in response to the candidate distance being equal to the distance between the first token and the second token in the character string.

15. The device according to claim 14 , wherein the processing unit is configured to:

obtain an intersection of the first set of documents and the second set of documents; and

select the candidate document from the intersection of the first set of documents and the second set of documents.

16. The device according to claim 14 , wherein the processing unit is configured to:

determine a first set of positions of the first token in the candidate document;

determine a second set of positions of the second token in the candidate document; and

determine, based on the first set of positions and the second set of positions, whether the candidate distance is equal to the distance between the first token and the second token in the character string.

17. The device according to claim 13 , wherein the processing unit is further configured to:

select, responsive to the sorted sets of documents, a fourth set of documents including a third token in the character string, wherein the fourth set of documents has the least number of documents in the remaining sets of documents;

generate a fifth set of documents based on the third set of documents and the fourth set of documents, wherein for each document in the fifth set of documents:

i) the document is included in both the third set of documents and the fourth set of documents, and

ii) a distance between the first token and the third token in the document is equal to a distance between the first token and the third token in the character string, and a distance between the second token and the third token in the document is equal to a distance between the second token and the third token in the character string.

18. The device according to claim 13 , wherein the processing unit is further configured to:

generate new sets of documents until at least one document including all tokens in the character string is found.

19. The device according to claim 13 , wherein the processing unit is further configured to:

generate new sets of documents until a number of documents in a newly generated set of documents is less than a predetermined threshold.

20. A computer program product for searching a character string, the computer program product comprising:

a non-transitory computer readable medium encoded with computer-executable code, the code configured to enable the execution of:

determining a plurality of sets of documents at least in part by, for each token in the character string, determining a set of documents including the token;

sorting the sets of documents in the plurality of sets of documents according to the number of documents in each set of documents;

responsive to the sorting of the sets of documents, selecting a first set of documents including a first token in the character string, and a second set of documents including a second token in the character string, wherein the first set of documents and the second set of documents have the least numbers of documents in the plurality of sets of documents; and

generating a third set of documents based on the first and second sets of documents, wherein for each document in the third set of documents:

i) the document is included in both the first set of documents and the second set of documents, and

ii) a distance between the first token and the second token in the document is equal to a distance between the first token and the second token in the character string.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: DAI, DUKE HONGTAO; ZHANG, WINSTON LEI; CHEN, CHAO; HUANG, KUN WU; LIU, JINGJING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051703/0563 →