: Without knowing anything about how Solr is configured, I would guess that it : is because of a default operator of "OR" making it so that any of those filter : clauses will match. Give the following filter a try:
that shouldn't matter -- regardless of the default operator the "-" in front of the body:[* TO *] clause should force it to be a negated clause. : Alternately, you could use three separate filters: : : fq=contenttype:"Article" : fq=*:* AND -body:[* TO *] : fq=pubdatetime:[2007-01-01T23:59:59Z TO 2010-12-31T00:00:00Z] the more significant question there is wether the OP wants to find docs that match *all* of the clauses or *any* of the clauses ... if the answer is "any" then using seperate fq's definitely won't work. As for as the original question... 1) when troubleshooting, it definitely makes sense to simplify the problem down to rule things out ... if "AR2010111900131" is the id of a doc that has a body but mysteriously matches your query anyway, start with a very targeted query to sanity check things... q=systemid:AR2010111900131&fq=-body:[* TO *] 2) -body:[* TO *] matches documents that have no *INDEXED* terms in the body field -- what you showed in your results is that the documents have a *STORED* value in the body field -- are you absolutely certain that your analyzer doesn't prune everything down from the original body value so that there are no terms left to index? have you tried pasting "M1 M2 M3 M4 V1 V2 V3 V4" into the analysis tool for that field type? In particular i'm suspicious of what might be in your synonym files, stopword files, and protwords.txt ... especially protwords.txt, because that WDF config looks really fishy. if i'm reading those options correctly it's not going to index anything for any of those input "words" unless they are in protwords.txt -Hoss