On Wednesday 07 Dec 2005 07:38, Alan Chandler wrote:
> I am trying to construct, via individual query api, a query to search for
> documents with a field name of "Category" and a value of either "Category1"
> OR "Category2" (or both).
>
> My code to do this (given categories is the set of strings with the
> category names I wish to search for) is as follows
>
>               BooleanQuery query = new BooleanQuery();

Actually I cheated a little when I posted that. Because I missed out  ...

                query.add(config,false,true); //This clause misses out the 
config document
                if (onlyPublished) {
                        query.add(published,true,false); // limit to published 
articles
                }


>               if (categories != null && !categories.isEmpty()) {
>                       for (String category : categories) {
>                               TermQuery t =new TermQuery(new 
> Term("Category",category));
>                               query.add(t,false,false); //Saywould like that 
> category
>                       }
>               }
>

In otherwords my BooleanQuery was more complex than I let on.

Now I have solved the other problem or getting to see the Hits without an 
IOException (by keeping the indexWriter open) I can see that what is returned 
is ONLY the document defined by the first term (ie labelled config in the 
above code snippet).

(My config document has the field "ID" set to value "0" - all the other 
documents have a single field called "ID" set to the string of a positive 
integer so config is defined as 

private static final TermQuery config =new TermQuery(new Term("ID","0"));
)

I thought that term, with the "prohibited" set to true prevented this one 
being a match.

What I seem to have is therefore the inverse of what I was expecting - so what 
have I misunderstood here?

-- 
Alan Chandler
http://www.chandlerfamily.org.uk
Open Source. It's the difference between trust and antitrust.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to