Forcing Immediate Update Indexes
I’m sure many of you have written applications that involve full-text indexes, and found that the index doesn’t update for some time after your agent completes, even when the index frequency is set to ‘Immediate’. The Admin help suggests that such indexes are updated as soon as possible after the database is closed, but in fact, “as soon as possible” is not less than 15 minutes.
The request goes on a queue, and waits, so if the database is quite active, the index is updated every so often rather than after every change — reducing server loadings, but potentially increasing user irritation. In fact for some applications the can be quite a nuisance — especially, as in my case, you have a team of testers eagerly trying to break the application and being frustrated at the indexer delays. In the end they raised a trouble ticket and we had to respond It’s worth noting that the server behaviour differs from client behaviour — the client updates “Immediate” FTI’s directly as the database is closed.
We initially worked around the problem by using a program document to run Updall every couple of minutes, using the -F parameter, to update the index every couple of minutes. That actually worked fine, and for many applications is probably all you need to do, unless your Admins object to your request for the program schedule.
A better solution, entirely within your control, is to request the update directly in the application code, as the agent completes. In LotusScript or Java, it’s just one line of code: call NotesDatabase.UpdateFTindex(False), and in our tests, the index was updated in seconds.
One warning: don’t attempt to use the True parameter to create a full-text index on a server database. You get an error, as documented in the help.
Viewed 6088 times by 1626 viewers













