@@ -352,7 +352,9 @@ export async function optimizeDatabase(guildId: string): Promise<void> {
352
352
353
353
// Optimize FTS5 tables
354
354
try {
355
+ logger . info ( "Optimizing FTS5 index for messageindex..." ) ;
355
356
db . exec ( "INSERT INTO messageindex(messageindex) VALUES('optimize');" ) ;
357
+ logger . info ( "FTS5 index for messageindex optimized successfully." ) ;
356
358
} catch ( error ) {
357
359
logger . error ( "Failed to optimize FTS5 table 'messageindex':" , error ) ;
358
360
}
@@ -361,16 +363,15 @@ export async function optimizeDatabase(guildId: string): Promise<void> {
361
363
export async function rebuildIndexes ( guildId : string ) : Promise < void > {
362
364
const db = getDatabaseForGuild ( guildId ) ;
363
365
364
- // Drop and recreate the FTS5 index
365
- // TODO: Should we use https://sqlite.org/fts5.html#the_rebuild_command instead?
366
- db . exec ( `
367
- DROP TABLE IF EXISTS messageindex;
368
- CREATE VIRTUAL TABLE messageindex USING fts5(content, content="message", tokenize="trigram");
369
- INSERT INTO messageindex(rowid, content)
370
- SELECT rowid, content FROM message WHERE content IS NOT NULL;
371
- ` ) ;
372
-
373
- await optimizeDatabase ( guildId ) ;
366
+ // Rebuild the FTS5 index
367
+ try {
368
+ logger . info ( "Rebuilding FTS5 index for messageindex..." ) ;
369
+ db . exec ( "INSERT INTO messageindex(messageindex) VALUES('rebuild');" ) ;
370
+ logger . info ( "FTS5 index for messageindex rebuilt successfully." ) ;
371
+ await optimizeDatabase ( guildId ) ;
372
+ } catch ( error ) {
373
+ logger . error ( "Failed to rebuild FTS5 table 'messageindex':" , error ) ;
374
+ }
374
375
}
375
376
376
377
export function updateMessageDay ( guildId : string , message : Message , isDelete : boolean = false ) : void {
0 commit comments