Yeah, looks to me like two or more negated terms does the same thing, not just one.

q=-foo -bar -baz

Also always returns zero hits. For the same reason. I understand why (sort of), although at the same time there is a logical answer to this question "-foo -bar -baz", and oddly, 1.4.1 _lucene_ query parser _can_ handle it.

Erik Hatcher in IRC gave me one transformation of this query that still uses dismax as a unit, but can get you a solution. (I want to use dismax in this case for it's convenient aggregation of multiple fields in qf, not so much for actual disjunction-maximum behavior).

&defType=lucene
&q=*:* AND NOT _query_:"{!dismax} foo bar baz"

I might be able to work with that in my situation. But it also seems like something that dismax could take care of for you in such a situation. It looks from the documentation like the newer (not in 1.4.1) edismax does in at least some cases, where the pure negative query is inside grouping/subquery parens, it's not clear to me if it does it in general or not.

On 3/17/2011 4:45 PM, Markus Jelsma wrote:
Oh i see, i overlooked your first query. A query with one term that is negated
will yield zero results, it doesn't return all documents because nothing
matches. It's, if i remember correctly, the same as when you're looking for a
field that doesn't have a value: q=-field:[* TO *].

My fault for putting in the quotes in the email, I actually don't have
tests in my quotes, just tried again to make sure.

And I always get 0 results on a pure negative Solr 1.4.1 dismax query. I
think it does not actually work?

On 3/17/2011 3:52 PM, Markus Jelsma wrote:
Hi,

It works just as expected, but not in a phrase query. Get rid of your
quotes and you'll be fine.

Cheers,

Should 1.4.1 dismax query parser be able to handle pure negative queries
like:

&q="-foo"
&q="-foo -bar"

It kind of seems to me trying it out that it can NOT.  Can anyone else
verify?  The documentation I can find doesn't say one way or another.
Which is odd because the documentation for straight solr-lucene query
parser athttp://wiki.apache.org/solr/SolrQuerySyntax  suggests that
straight solr-lucene query parser_can_  handle pure negative.  That
seems odd that solr-lucene Q.P. can, but dismax can't? Maybe I'm
misinterpreting or misunderstanding my experimental results.

Reply via email to