Right now, the search index is only updated manually via the ink index command. Ideally we incrementally index.
I think a first pass is likely storing the "last index" timestamp in a data directory, and whenever we go to hit a function that relies on the search, run a "update_since_last_index" function that only updates notes that have been edited since.
We could probably allow this to be a user configuration setting (index_strategy?), and for 1.0 two options: eager (the process described above) or manual. Later down the line we could probably get fancy and spin off an async thread if it's been ~5m since the last index on any operation, and make this a 'lazy'/async configuration option.
Right now, the search index is only updated manually via the
ink indexcommand. Ideally we incrementally index.I think a first pass is likely storing the "last index" timestamp in a data directory, and whenever we go to hit a function that relies on the search, run a "update_since_last_index" function that only updates notes that have been edited since.
We could probably allow this to be a user configuration setting (
index_strategy?), and for 1.0 two options: eager (the process described above) or manual. Later down the line we could probably get fancy and spin off an async thread if it's been ~5m since the last index on any operation, and make this a 'lazy'/async configuration option.