We recently had to build a text intensive search engine for a proprietary product database.
The way we did it was to dump the relevant text fields into a SQLite database, and then use the built in Full Text Searching engine in SQLite to do the searching.
Check out the excellent article on ClarionMag with respect to integrating SQLite into Clarion. In essence, we pass a query to the SQLite engine which returns the search dataset into a queue. In time trials, a search through 50,000 product lines returns a dataset in average 0.2 seconds. That is the total time to build the query string, pass it to SQLite and for SQLite to return the results and build the queue in Clarion.
And we are talking complex queries such as "red OR blue widgets size 10 NOT wingtip".
Let me know if you want more info.
Cheers,
Devan