I decided to try out Beagle.
sudo apt-get install beagle beagled best&
This is all it takes to install it, run the indexing daemon, and run the search utility that sits in a tray icon. (I had enabled user_xattr in my /etc/fstab a while ago.)
I was impressed by the background indexer -- it really is extremely nonintrusive. No slowdowns, no excessive disk I/O. I couldn't notice it was running in the background. I left the laptop running overnight and went to sleep.
In the morning I discovered that mono-beagle daemon ate 300 megs of virtual memory (all that was left, and then some -- the laptop started swapping). What is worse, it ate all the remaining disk space (I had about a gig left). ~/.beagle/ eats 500 megs -- the rest are probably metadata in extended attributes, scattered all over the place.
How do I measure the disk space taken by extended attributes? How do I strip them?
How do I discover how complete the index is? I presume beagled knows which files it has already indexed, and which it still plans to index in the future?
What are the RAM and disk costs of indexing 20 gigs of data (that's my ~ for you)? Will beagled eat inordinate amounts of RAM only during indexing, or always?
I only have 512 megs of RAM in this laptop; I do not want to sacrifice 60% of that to beagled. Likewise, 1 gig out of a measly 40 gig disk feels like a lot to pay for some convenience. I think I shall go back to locate + recursive grep for now. Or disable blanket indexing and only ask Beagle to index a few subdirs. I don't really need an index on all those Zope 3 and SchoolTool source trees.