Switch inverted index from stale check to incremental updates
Register a hook with the indexer so that file add/remove events incrementally maintain the inverted index, removing the need for periodic staleness checks and cooldowns. Rebuild the index once on startup via init_inverted_index().
This commit is contained in:
@@ -599,6 +599,11 @@ def _remove_file_from_structures(vault_name: str, rel_path: str) -> Optional[Dic
|
||||
path_index[vault_name] = [p for p in path_index[vault_name] if p["path"] != rel_path]
|
||||
|
||||
_index_generation += 1
|
||||
|
||||
# Notify inverted index for incremental update
|
||||
if _on_index_change:
|
||||
_on_index_change('remove', vault_name, rel_path, removed)
|
||||
|
||||
return removed
|
||||
|
||||
|
||||
@@ -666,6 +671,10 @@ def _add_file_to_structures(vault_name: str, file_info: Dict[str, Any]):
|
||||
|
||||
_index_generation += 1
|
||||
|
||||
# Notify inverted index for incremental update
|
||||
if _on_index_change:
|
||||
_on_index_change('add', vault_name, file_info["path"], file_info)
|
||||
|
||||
|
||||
async def update_single_file(vault_name: str, abs_file_path: str) -> Optional[Dict[str, Any]]:
|
||||
"""Re-index a single file without full rebuild.
|
||||
|
||||
Reference in New Issue
Block a user