: I've been using q.alt=-*:* because *:* is said to be the most efficient way 
of 
: querying for every document. is -*:* the most efficient way of querying for 
: no document?

I don't think so ... solr internally reverse pure negative queries so that 
they are combined with a matchalldocsquery that is positive ... which 
means your final query would look like (*:* -*:*) ... there's no toehr 
query optimization that would happen, so that query sould produce a 
DisjunctionScorer that can't ever "skipTo" past any docs.

once it gets cached it shouldn't matter -- but hey, you asked.

The most efficient way i can think of (besides a new Query class like John 
suggested) is along the lines of what Erik mentioned...

    <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" 
class="solr.StrField" /> 
    <field name="match_nothing" type="ignored"/>
    ...
    q.alt=match_nothing:0

...it has to be a real field or the query parsing code will freak out, but 
making it indexed=false will ensure that there will *never* be any terms 
in that field so the term "0" will never be there so the entire query 
process will short circut out almost immediately (it won't even construct 
a Scorer let alone iterate over any docs)

-Hoss

Reply via email to