3
votes

I just found that on a Domino 9.01 server the Update.FulltextList queue does not change when I add a document to a NSF via XPages in the web. The fulltext update frequency on that NSF is set to "immediate", and the result is that the fulltext index is never updated automatically when there were changes to documents via XPages/Web.

After I made some change via Notes the updater runs after some seconds and the ft index is being updated just fine.

Did someone experiences similar behaviour and has a solution?

4
Does it work calling NotesDatabase.updateFTIndex() after saving document?Knut Herrmann
no, I just called database.updateFTIndex(true) after saving, but this made no difference. Update.FulltextList is still 0. Strange.Julian Buss
strange enough, I just modified 4 other documents via ScanEZ, that means via Notes, and Update.FulltextList is still 0, ever after two minutes. notes.ini has Update_Suppression_Time=1, so the indexer really should get to work after max 1 minute, shouldn't it?Julian Buss
Maybe you can try this notes.ini setting : FullTextMultiProcess=1. The description I found is this : Allows chronos to process full text updates directly, instead of having to add a full text index request to the update queue. Source : lntoolbox.com/en/notesini-reference/bycategory/27-indexing/… Hope this helps...Renaud Thiévent
thanks, but Chronos only runs hourly, I need shorter intervals :)Julian Buss

4 Answers

1
votes

Somehting has gone worng with full text immediate for the last few server versions. There is probably some new INI setting but getting admins to do this is frustrating, so best thing to do is to get the database updated manually using lotusscript or java. It doesn't seem to matter if you ask for lots of requests.

db.updateFTIndex(true)

You can count the number of iunindexed documents forst if you like.

Dim session As New NotesSession
Dim db As NotesDatabase

Set db = session.CurrentDatabase



Print "Last Indexed:<br>" & db.LastFTIndexed & "<br>"

Dim ndtnow As New NotesDateTime(Now)
Dim ndtli As New NotesDateTime(db.LastFTIndexed )

Print Cdbl( ndtnow.TimeDifferenceDouble(ndtli)/60 ) & " minutes ago." & "<br><br>"

Dim T As New NotesDateTime("") 
Dim UnindexedCol As NotesDocumentCollection 


T.LSLocalTime = db.LastFTIndexed 
Set UnindexedCol = db.Search({@All}, T, 0) 
Print "Unindexed changed or new documents: " &  UnindexedCol.count & "<br><br>"
1
votes

I have to say that it DOES work with XPages/Web. It just looked like it didn't work, because it takes up to 15 minutes until the ft index gets updated, and the Update.FulltextList statistic seems to lag behind the current situation a lot.

15 minutes is not my interpretation of "immediate" since the indexer has no load at all on that server, but that's a different story.

1
votes

I'm not an admin, but this looks very useful http://www-01.ibm.com/support/knowledgecenter/SSKTMJ_9.0.1/admin/admn_indexertasksupdateandupdall_r.dita.

One part I notice is:

When a view or folder change is recorded in the queue, Update waits approximately 15 minutes before updating all view indexes in the database so that the update can include any other database changes made during the 15-minute period. After updating view indexes in a database, it then updates all databases that have full-text search indexes set for immediate or hourly updates.

It's worth noting the Indexer task updates view indexes as well as the full text indexes. You can split them onto separate threads using UPDATE_FULLTEXT_THREAD=1 in notes.ini. With the more recent versions of Domino you can move the full text indexes onto a separate drive. I'm not sure if that improves update performance.

Please don't use LotusScript to update the full text index in an XPages context. I can't stress that strongly enough. Also, if you want to update the full text index, I'd recommend using the parameter false instead of true. The database should always have a full text index in place when it's set up, but you can easily check that.

In recent projects I've been using Jesse Gallagher's frostillicus framework. I notice that the BasicDocumentController class updates the full text index on save of each document, with this code:

if (database.isFTIndexed()) {
    database.updateFTIndex(false);
}
1
votes

The 15 minute delay in automatic 'immediate' full text updates is fairly well known in Domino Admin circles. You could try creating a Program document for the server. Use a command something like this:

Updall -F [database_name]/[folder]

The -F switch ensures Updall only updates FT indexes, not views (which are generally speaking updated instantly unless programmed otherwise).

We have a number of servers that runs this every 5 minutes during working hours and it helps. Bear in mind it will create a LOT of I/O on a busy server.