The truncation message is just an informational message (of dubious value) from postgresql. We see the second one on
openacs.org with some frequency but I have never tried to track down why it happens, indexing does seem to continue after that though. The indexer is not terribly fast however so what you might want to do is copy the search_observer_queue to another table, truncate it, and feed things back into it in off hours for indexing.
I think indexing 5000 bboard posts took about 3 hours on
openacs.org (although I was not watching it that carefully).
Not sure how that scales with size or with number of items though.