fix: invalidate index discographies after library rescan
The search index's Tier 3 (library artists) depends on MBIDs from the artists table. If the index built before a rescan populated those MBIDs, library artists like Flatbush Zombies wouldn't be indexed — they're not in the sitewide top 1000 and their name didn't match via fuzzy matching. Fix: OnAllScansComplete hook now calls InvalidateIndexDiscographies before StartIndexBuild. This clears the discog_built timestamp so Tiers 2-4 re-run incrementally, picking up any new library artists whose MBIDs were just populated by the scan. The rebuild is incremental — only artists not already in the index get their discographies fetched.
This commit is contained in:
@@ -218,6 +218,9 @@ func (yj *YellowJacketApp) OnStartup(ctx context.Context) {
|
||||
yj.library.SetScanHooks(library.ScanHooks{
|
||||
ResolvePhantoms: yj.playlist.ResolvePhantomTracksAfterScan,
|
||||
OnAllScansComplete: func() {
|
||||
// Force index Tiers 2-4 to re-check for new library
|
||||
// artists whose MBIDs were just populated by the scan.
|
||||
yj.explore.InvalidateIndexDiscographies()
|
||||
yj.explore.StartIndexBuild()
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user