Java Mailing List Archive

http://www.java2.5341.com/

Home » java-user.lucene »

using list of items to be excluded while querying

prabin meitei

2008-10-16

Replies: Find Java Web Hosting

Author LoginPost Reply
Hi,   I have a large index of documents of fields "id" "name" and few
other.
while querying i do want to exclude a list of ids i passed in.

for this what i use is
Query query = new BooleanQuery();

for (int i=0; i<list.size(); i++){

          term = new Term("id", list.get(i).toString());

          termQuery = new TermQuery(term);

          query.add(termQuery, Occur.MUST_NOT);

       }


the problem with this is that when my list size grows larger (more than
1024) it gives tooManyBooleanCauses exception.


i tried by changing the query to

query.add(new QueryParser("id", new StandardAnalyzer()).parse(list.toString()),
Occur.MUST_NOT);


this also gives the same problem when list size is big.


I do not want to increase the max clause limit ('coz of performance issues)


Is there any simple solution to such problem?


Any suggestion will be greatly appreciated.


Prabin
©2008 java2.5341.com - Jax Systems, LLC, U.S.A.