Your problem is that you're saying with the -myField:* "Remove from the result set all documents with any value in myField", which is not what you want. Lucene query language is not strictly boolean logic, here's an excellent writeup:
http://www.lucidimagination.com/blog/2011/12/28/why-not-and-or-and-not/ you want something like (myfield:bob myfield:alice) (*:* -myfield:*) Best Erick On Thu, Mar 15, 2012 at 10:23 AM, Alexander Golubowitsch <alexander.golubowit...@antikoerper-online.de> wrote: > Hi all, > > I'm facing problems regarding multiple Filter Queries in SOLR 1.4.1 - I > hope some one will be able to help. > > Example 1 - works fine: {!tag=myfieldtag}(-(myfield:*)) > Example 2 - works fine: {!tag=myfieldtag}((myfield:"Bio" | myfield:"Alexa")) > > Please note that in Example 2, result sets of individual filter queries do > not intersect; 'OR' just works as expected. > > Example 3 - no results: {!tag=myfieldtag}((myfield:"Bio" | myfield:"Alexa") > | -(myfield:*)) > > What I am trying to generate is results having either no value for myfield, > or any of {"Alexa", "Bio"}. > > How would I acomplish that? > I have tried all combinations/positions of brackets, +/- etc., without > success. > > Thanks a lot for any advice! > > Kind regards, > Alex