: 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

Reply via email to