I have implemented a search API into MachCMS.
There’s a crawl script which you can run in the background. It updates the index every 10 minutes by default although you can change that by passing an option to it.
The index is stored in the database. It contains all the words contained in pages, and time the pages were last updated, and more.
When you search it looks for matches in each page and ranks the pages by how many times the searched string was found in the page.
I did not implement caching because there was no need for it.
And I said when you saved virtual pages the index would be updated at the same time as well but I have not implemented that yet. That will only take a minute though.
Now I will be working on finishing plugins support and working some more on the editor before getting ready for release which includes adding mysql support so it can run with php4.
By the way Firefox 1.5RC1 has been out for awhile.