: Ok, I'll take your suggestion, but I would still be really happy if the : wildcard searches behaved a little more intelligent (body:* not looking for : everything in the body). More like when you do "q=*:*" it doesn't really : search for everything in every field.
If you can suggest an algorithm for it, then i'll happily implement it. *:* doesn't have to scan every term in every field because it's easy to get a list of all non-deleted documents and do a single pass over it. But getting a list of all documents that have *any* term in a specific field means you *have* to look at the list of *all* terms in that field, and for each term you then have to iterate over all the docs containing that term -- listing all docs containing a term is easy and fairly fast because of the inverted index, but doing that for a large number of terms (ie: a "body" field containing huge amounts of aritrary text) is where get really slow. I've added a FAQ about this, mentioning CountFieldValuesUpdateProcessorFactory (which was committed just after the 4.0-BETA, so you'll have to wait for 4.0-final unforunately.) https://wiki.apache.org/solr/FAQ#How_can_I_efficently_search_for_all_documents_that_contain_a_value_in_fieldX_.3F https://builds.apache.org/job/Solr-Artifacts-4.x/javadoc/org/apache/solr/update/processor/CountFieldValuesUpdateProcessorFactory.html -Hoss