> I'm not sure whether you'd call my operations IO heavy -- each query has so > many terms (~50) that even against a 45K document index a query takes 130ms, > but the entire index is in a ramfs.
The more terms, the more it takes to find docset intersections (belonging to each term); something in SOLR/Lucene is still synchronized... Try to compare with smaller 1-term queries, different terms for parallel requests...