IP Library Granted Patent US 12,468,763
Granted Patent B2
US 12,468,763 · App. 18/543,696 · Granted Nov 11, 2025

Method and apparatus for implementing a search index generator

Inventors: Jiaqi Guo (Chicago, IL); Sri Subramanian (Cupertino, CA); Ram Gopalan (Chennai, IN)
Assignee: BYTEDANCE INC.
G06F16/901G06F16/90335
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 12,468,763
App. No.
18/543,696
Granted
Nov 11, 2025
Kind
B2
Abstract

The disclosure provides examples of methods, apparatuses, systems, and computer program products for implementing a search indexer. One example method includes receiving, by index workflow circuitry, a search index update indicator, causing, by the index workflow circuitry and in response to receiving the search index update indicator, index generation circuitry to retrieve data sets from a plurality of data sources, calculating a checksum for each of the data sets, comparing the checksum for each of the data sets to a set of search index metadata, in response to determining that at least one checksum for at least one of the data sets does not match a metadata checksum from the set of search index metadata, generating a set of search index data from the data set corresponding to the at least one checksum, generating a search index using at least the set of search index data, and transmitting the search index to a search service for use in responding to at least one search query.

Claims (47)

1 . A method for generating a search index, the method comprising:

receiving, by index workflow circuitry, a search index update indicator;

causing, by the index workflow circuitry and in response to receiving the search index update indicator, index generation circuitry to retrieve data sets from a plurality of data sources;

calculating a checksum for each of the data sets;

comparing the checksum for each of the data sets to a set of search index metadata;

in response to determining that at least one checksum for at least one of the data sets does not match a metadata checksum from the set of search index metadata, generating a set of search index data from the data set corresponding to the at least one checksum;

generating a search index using at least the set of search index data; and

transmitting the search index to a search service for use in responding to at least one search query.

2 . The method of claim 1 , further comprising:

receiving a set of search results from the search service;

determining a set of content corresponding to the set of search results; and

providing the set of content to at least one consumer.

3 . The method of claim 1 , wherein at least two of the data sets are located at different data centers.

4 . The method of claim 1 , wherein the search index comprises a set of JavaScript Object Notation pair values.

5 . The method of claim 4 , wherein the pair values comprise a search term and a content identifier.

6 . The method of claim 1 , wherein the search index update indicator is a new data set registering with the index workflow circuitry.

7 . The method of claim 1 , wherein the search index update indicator is a periodic indicator.

8 . The method of claim 1 , further comprising excluding a data set in response to determining that the at least one checksum matches at least one metadata checksum.

9 . The method of claim 1 , further comprising splitting the at least one data set into multiple shards.

10 . The method of claim 9 , wherein each of the multiple shards is processed concurrently.

11 . The method of claim 10 , wherein each of the multiple shards is processed as a separate MapReduce job.

12 . The method of claim 1 , wherein generating the search index comprises at least one MapReduce job.

13 . A non-transitory computer readable storage medium comprising instructions that, when executed by a processor, configure an apparatus to generate a search index, the instructions comprising:

program instructions for receiving a search index update indicator;

program instructions for causing, in response to receiving the search index update indicator, index generation circuitry to retrieve data sets from a plurality of data sources;

program instructions for calculating a checksum for each of the data sets;

program instructions for comparing the checksum for each of the data sets to a set of search index metadata;

program instructions for, in response to determining that at least one checksum for at least one of the data sets does not match a metadata checksum from the set of search index metadata, generating a set of search index data from the data set corresponding to the at least one checksum;

program instructions for generating a search index using at least the set of search index data; and

program instructions for transmitting the search index to a search service for use in responding to at least one search query.

14 . The computer readable storage medium of claim 13 , further comprising:

program instructions for receiving a set of search results from the search service;

program instructions for determining a set of content corresponding to the set of search results; and

program instructions for providing the set of content to at least one consumer.

15 . The computer readable storage medium of claim 13 , wherein at least two of the data sets are located at different data centers.

16 . The computer readable storage medium of claim 13 , wherein the search index comprises a set of JavaScript Object Notation pair values.

17 . The method of claim 16 , wherein the pair values comprise a search term and a content identifier.

18 . The computer readable storage medium of claim 13 , wherein the search index update indicator is a new data set registering with the index workflow circuitry.

19 . The computer readable storage medium of claim 13 , wherein the search index update indicator is a periodic indicator.

20 . An apparatus for generating a search index comprising index workflow circuitry, index generation circuitry, and communications circuitry, the apparatus configured to execute operations comprising:

receiving, by the index workflow circuitry, a search index update indicator,

causing, by the index workflow circuitry and in response to receiving the search index update indicator, index generation circuitry to retrieve data sets from a plurality of data sources,

calculating, by the index workflow circuitry, a checksum for each of the data sets,

comparing, by the index workflow circuitry, the checksum for each of the data sets to a set of search index metadata;

generating, by the index generation circuitry and in response to determining that at least one checksum for at least one of the data sets does not match a metadata checksum from the set of search index metadata, a set of search index data from the data set corresponding to the at least one checksum;

generating, by the index generation circuitry, a search index using at least the set of search index data; and

transmitting, by the communications circuitry, the search index to a search service for use in responding to at least one search query.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2024
From: GROUPON, INC.
To: BYTEDANCE INC.
Reel/Frame 068538/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE THIRD INVENTOR'S NAME PREVIOUSLY RECORDED ON REEL 66402 FRAME 763. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 29, 2024
From: GUO, JIAQI; SUBRAMANIAN, SRI; GOPALAN, RAM
To: GROUPON, INC.
Reel/Frame 066707/0440 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 65899 FRAME: 512. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 22, 2023
From: GUO, JIAQI; SUBRAMANIAN, SRI; GOPALAN, RAMIN
To: GROUPON, INC.
Reel/Frame 066402/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2023
From: GUO, JIAQI; SUBRAMANIAN, SRI; GOPALAN, RAMIN
To: GROUPON, INC.
Reel/Frame 065899/0962 →
Continuity (4)
Continuation 17805504 · Jun 6, 2022
Continuation 16845869 · Apr 10, 2020
Continuation 14588196 · Dec 31, 2014
Related Publication 20240202241A1 · Jun 20, 2024
References Cited (16)
US 6012087A · Freivald · 2000 [cited by examiner]
US 6219818B1 · Freivald et al. · 2001 [cited by applicant]
US 7181438B1 · Szabo · 2007 [cited by applicant]
US 7308643B1 · Zhu et al. · 2007 [cited by applicant]
US 8423885B1 · Kupke et al. · 2013 [cited by applicant]
US 8635202B2 · Wen et al. · 2014 [cited by applicant]
US 9342524B1 · Doty · 2016 [cited by applicant]
US 9411862B1 · Wang et al. · 2016 [cited by applicant]
US 10657177B1 · Guo · 2020 [cited by examiner]
US 20040003132A1 · Stanley et al. · 2004 [cited by applicant]
US 20040249801A1 · Kapur · 2004 [cited by examiner]
US 20090234809A1 · Bluger et al. · 2009 [cited by applicant]
US 20090299962A1 · Permandla et al. · 2009 [cited by applicant]
US 20100030752A1 · Goldentouch · 2010 [cited by examiner]
US 20130091197A1 · Bar-Zeev et al. · 2013 [cited by applicant]
US 20130304615A1 · Gold · 2013 [cited by examiner]