Hey Erik; The problem with that approach is I get document that don't have a kcfileupload field. This makes sense because these documents don't match the prohibited clause, but doesn't fit with the requirements of the system.
What I like best about this approach is it doesn't require a filter. The system I integrate with is presently designed to accept a query object. I wasn't looking forward to having to add the possibility that queries might require filters. I may have to still do this, but for now I would like to try this and see how it goes. Thanks, Luke ----- Original Message ----- From: "Erik Hatcher" <[EMAIL PROTECTED]> To: "Lucene Users List" <lucene-user@jakarta.apache.org> Sent: Thursday, February 10, 2005 7:23 PM Subject: Re: Negative Match > > On Feb 10, 2005, at 4:06 PM, Luke Shannon wrote: > > > I think I found a pretty good way to do a negative match. > > > > In this query I am looking for all the Documents that have a > > kcfileupload > > field with any value except for jpg. > > > > Query negativeMatch = new WildcardQuery(new > > Term("kcfileupload", > > "*jpg*")); > > BooleanQuery typeNegAll = new BooleanQuery(); > > Query allResults = new WildcardQuery(new Term("kcfileupload", > > "*")); > > IndexSearcher searcher = new IndexSearcher(fsDir); > > BooleanClause clause = new BooleanClause(negativeMatch, false, > > true); > > typeNegAll.add(allResults, true, false); > > typeNegAll.add(clause); > > Hits hits = searcher.search(typeNegAll); > > > > With the little testing I have done this *seems* to work. Does anyone > > see a > > problem with this approach? > > Sure.... do you realize what WildcardQuery does under the covers? It > literally expands to a BooleanQuery for all terms that match the > pattern. There is an adjustable limit built-in of 1,024 clauses to > BooleanQuery. You obviously have not hit that limit ... yet! > > You're better off using the advice offered on this thread > previously.... create a single dummy field with a fixed value for all > documents. Combine a TermQuery for that dummy value with a prohibited > clause like y our negativeMatch above. > > Erik > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]