Events and index-management

If you are experiencing problems with "Everything", post here for assistance.
Post Reply
tivl82
Posts: 2
Joined: Thu Aug 06, 2015 2:57 pm

Events and index-management

Post by tivl82 »

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
void
Developer
Posts: 16750
Joined: Fri Oct 16, 2009 11:31 pm

Re: Events and index-management

Post by void »

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.
* Is it possible to invoke a method to start indexing at will (when I start up, just "quickly update your database")
Everything should only do a quick update.
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.
* Is there a method to read the indexing status ("busy", "completed", "not performed",...)
Currently, no.
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.
Everything 1.4 IPC calls will wait until the database has loaded, so if you perform a query while the database is loading you wont get 0 results instead you will get the correct results once the load is complete.

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.
* Can I read a bool parameter to see if indexing has been done (maybe on drive or folder level)
No such IPC call exist yet.
* Or is there a way to hook into events
-> SearchCompleted
-> IndexChanged(complete/update/remove/...)
I really want to expose the internal UI indexing API, this would handle everything, from highlighting to database loaded events.
This will be difficult over WM_COPYDATA / windows messaging IPC.
I'll post more on this in the next beta release.
tivl82
Posts: 2
Joined: Thu Aug 06, 2015 2:57 pm

Re: Events and index-management

Post by tivl82 »

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.
Post Reply