Hmmm... if you need field-based searching, you could combine a text search like this with some simple field-based searching, maybe in MySQL or a DBM file (for indexing keys to documents). Or maybe you could do multiple searches for the nested conditions and combine the answers. DBIx::FullTextSearch does support a pretty fancy syntax, although not quite as fancy as what you're talking about.