Hi,
I'm taking over a project which uses Everything. But I'm running into limitations or shortcomings.
Hopefully someone can help me further:
Whenever the application starts, it kills Everything and then starts rebuilding indexes. Because it's NTSF and there are a lot of network drives this takes a grueling long time.
Additionally - the developer implemented a "create random file" and checks every second wether it has been put into the index to determine "indexing has finished and there isn't a result" as opposed to "there isn't a result because the indexing hasn't finished yet".
From a user-experience standpoint you start the application. Their local drives are available after a little while to sort through and manipulate. When the insert a USB-key it's not "available yet" because it's put down in the queue.
If they are REALLY patient, all their network drives are listed, and then some more. Finally they can operate on them.
Until they are done and stop the application, Everything is shut down.
When they start up again - oops.. all is reset. Lets wait again....
From this context:
* Is it possible to invoke a method to start indexing at will (when I start up, just "quickly update your database")
* Is there a method to read the indexing status ("busy", "completed", "not performed",...)
* Can I read a bool parameter to see if indexing has been done (maybe on drive or folder level)
* Or is there a way to hook into events
-> SearchCompleted
-> IndexChanged(complete/update/remove/...)
Thank you for your suggestions
Events and index-management
Re: Events and index-management
Thanks for your suggestions.
The current IPC was designed to be simple, to quickly check if a file exists and where it is located.
The IPC assumes Everything is always running.
There are some shortcomings as you have described and I hope to address them in the Everything 1.4 beta release.
If Everything is re-indexing then too many changes have occurred or Everything found a new volume, etc.
This will improve in the next release, for now I can only suggest you keep Everything running so it stays up to date and enable keep offline volumes so Everything doesn't re-index so often.
Currently the IPC will:
You could fudge something like searching for root: and checking if there is any results, no results = not loaded or empty index, 1 or more results = loaded.
I'm looking into adding events, so you can detect when the Everything database has loaded and IPC calls so you can determine if the database is loaded.
This will be difficult over WM_COPYDATA / windows messaging IPC.
I'll post more on this in the next beta release.
The current IPC was designed to be simple, to quickly check if a file exists and where it is located.
The IPC assumes Everything is always running.
There are some shortcomings as you have described and I hope to address them in the Everything 1.4 beta release.
Everything should only do a quick update.* Is it possible to invoke a method to start indexing at will (when I start up, just "quickly update your database")
If Everything is re-indexing then too many changes have occurred or Everything found a new volume, etc.
This will improve in the next release, for now I can only suggest you keep Everything running so it stays up to date and enable keep offline volumes so Everything doesn't re-index so often.
Currently, no.* Is there a method to read the indexing status ("busy", "completed", "not performed",...)
Currently the IPC will:
- Wait when the database is busy and continue as normal once the database is no longer busy.
- Return 0 results if the database is loading.
- Cancel an existing IPC query when a new one is performed.
- Otherwise the IPC request will operate normally.
You could fudge something like searching for root: and checking if there is any results, no results = not loaded or empty index, 1 or more results = loaded.
I'm looking into adding events, so you can detect when the Everything database has loaded and IPC calls so you can determine if the database is loaded.
No such IPC call exist yet.* Can I read a bool parameter to see if indexing has been done (maybe on drive or folder level)
I really want to expose the internal UI indexing API, this would handle everything, from highlighting to database loaded events.* Or is there a way to hook into events
-> SearchCompleted
-> IndexChanged(complete/update/remove/...)
This will be difficult over WM_COPYDATA / windows messaging IPC.
I'll post more on this in the next beta release.
Re: Events and index-management
Hi void,
Thank you show much for the quick and elaborate response. It strikes me as really engaged and professional!
I'll be looking forward for the new release.
Thank you show much for the quick and elaborate response. It strikes me as really engaged and professional!
I'll be looking forward for the new release.