IP Library Granted Patent US 9,665,605
Granted Patent B2
US 9,665,605 · App. 14/481,357 · Granted May 30, 2017

Methods and apparatus for building a search index for a database

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,665,605
App. No.
14/481,357
Granted
May 30, 2017
Kind
B2
Abstract

Methods and apparatus for building a search index for a database are disclosed. When an incremental build trigger is detected (e.g., a threshold number of documents are added to database), the system determines which sub-indexes need to be updated and which sub-indexes do not need to be updated. Rather than update the affected sub-indexes directly, the system builds new sub-indexes to replace the affected sub-indexes. Database queries that occur during the generation of the replacement sub-indexes use the old sub-indexes. When the new sub-indexes are ready, the system moves pointers from the old sub-indexes to the new sub-indexes so that subsequent database queries use the new sub-indexes.

Claims (41)

1. A method of incrementally building a Search-Index for a database without rendering the database inoperable, the method comprising:

detecting a trigger to begin an incremental build of the Search-Index;

determining that a particular sub-index of a plurality of sub-indexes that form the Search-Index is to be updated by the incremental build;

generating a new sub-index based on the particular sub-index and an update included in the incremental build, wherein generating the new sub-index enables the incremental build to be built without affecting the particular sub-index directly;

during the generation of the new sub-index, executing a first query of the Search-Index using the particular sub-index, and not the new sub-index; and

after the new sub-index is generated:

updating a pointer that pointed to the particular sub-index to point to the new sub-index, and

executing a second query of the Search-Index using the new sub-index, and not the particular sub-index.

2. The method of claim 1 , wherein the trigger to begin the incremental build includes an addition of a plurality of documents to the database.

3. The method of claim 1 , wherein the trigger to begin the incremental build includes a deletion of a plurality documents from the database.

4. The method of claim 1 , wherein the trigger to begin the incremental build is based on a fragmentation level.

5. The method of claim 1 , wherein the trigger to begin the incremental build includes a manual user input.

6. The method of claim 1 , wherein after the third sub-index is generated, the first sub-index is deleted.

7. An apparatus for incrementally building a Search-Index for a database without rendering the database inoperable, the apparatus comprising:

a processor;

a network interface operatively coupled to the processor; and a memory device operatively coupled to the processor, the memory device storing instructions to cause the processor to:

detect a trigger to begin an incremental build of the Search-Index;

determine that a particular of a plurality of sub-indexes that form the Search-Index is to be updated by the incremental build;

generate new sub-index based on the particular sub-index and an update included in the incremental build, wherein generating the new sub-index enables the incremental build to be built without affecting the particular sub-index directly;

during the generation of the new sub-index, execute a first query of the Search-Index using the particular sub-index, and not the new sub-index; and

after the third sub-index is generated:

update a pointer that pointed to the particular sub-index to point to the new sub-index, and

execute a second query of the Search-Index using the new sub-index, and not the particular sub-index.

8. The apparatus of claim 7 , wherein the trigger to begin the incremental build includes an addition of a plurality of documents to the database.

9. The apparatus of claim 7 , wherein the trigger to begin the incremental build includes a deletion of a plurality documents from the database.

10. The apparatus of claim 7 , wherein the trigger to begin the incremental build is based on a fragmentation level.

11. The apparatus of claim 7 , wherein the trigger to begin the incremental build includes a manual user input.

12. The apparatus of claim 7 , wherein after the third sub-index is generated, the first sub-index is deleted.

13. A non-transitory computer readable medium storing instructions structured to cause a computing device to:

detect a trigger to begin an incremental build of a Search-Index;

determine that a particular of a plurality of sub-indexes that form the Search-Index is to be updated by the incremental build;

generate new sub-index based on the particular sub-index and an update included in the incremental build, wherein generating the new sub-index enables the incremental build to be built without affecting the particular sub-index directly;

during the generation of the new sub-index, execute a first query of the Search-Index using the particular sub-index, and not the new sub-index; and

after the third sub-index is generated:

update a pointer that pointed to the particular sub-index to point to the new sub-index, and

execute a second query of the Search-Index using the new sub-index, and not the particular sub-index.

14. The computer readable medium of claim 13 , wherein the trigger to begin the incremental build includes an addition of a plurality of documents to the database.

15. The computer readable medium of claim 13 , wherein the trigger to begin the incremental build includes a deletion of a plurality documents from the database.

16. The computer readable medium of claim 13 , wherein the trigger to begin the incremental build is based on a fragmentation level.

17. The computer readable medium of claim 13 , wherein the trigger to begin the incremental build includes a manual user input.

18. The computer readable medium of claim 13 , wherein after the third sub-index is generated, the first sub-index is deleted.

Assignments (6)
SECURITY INTEREST Recorded Jan 30, 2026
From: RELATIVITY ODA LLC; TEXT IQ, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 074537/0402 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 056218/0822 Recorded Jan 30, 2026
From: BLUE OWL CAPITAL CORPORATION, AS COLLATERAL AGENT F/K/A OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
To: RELATIVITY ODA LLC
Reel/Frame 074539/0099 →
SECURITY INTEREST Recorded May 12, 2021
From: RELATIVITY ODA LLC
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 056218/0822 →
CHANGE OF NAME Recorded Aug 28, 2017
From: KCURA LLC
To: RELATIVITY ODA LLC
Reel/Frame 043687/0734 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2015
From: KOGAN, MIKHAIL; GOLDSTEIN, MICHAEL B.; SOLILOV, NIKITA; MECCI, FATIMA Z.; MAY, MASON D.; GOVINDARAJAN, VIDHYAPRIYA; KAMINSKI, KEITH L.; STACHOWIAK, KYLE A.
To: KCURA CORPORATION
Reel/Frame 035375/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2015
From: KCURA CORPORATION
To: KCURA LLC
Reel/Frame 034976/0680 →