
uwe at thetaphi
Feb 1, 2012, 12:26 AM
Post #7 of 7
(92 views)
Permalink
|
I would recommend to use TermsFilter (http://goo.gl/BC9eQ, possibly wrapped by a ConstantScoreQuery). You must do the query building by hand, yuery *parser* cannot do that: TermsFilter tf = new TermsFilter(); // it is in lucene-queries.jar tf.addTerm(new Term("id", val1)); tf.addTerm(new Term("id", val2)); tf.addTerm(new Term("id", val3)); tf.addTerm(new Term("id", val4)); // if you need a query and don't want to use a Filter: Query wrappedQ = new ConstantScoreQuery(tf); You can execute the Filter as addon to your already prepared query: searcher.search(queryParser.parse("content: (hello world)"), filter,...); Or you use the wrapped as ConstantScore and combine it with the query: BooleanQuery bq = new BooleanQuery(); bq.add(queryParser.parse("content: (hello world)"), BooleanClause.Occur.MUST); bq.add(wrapped, BooleanClause.Occur.MUST); searcher.search(bq,...); Uwe ----- Uwe Schindler H.-H.-Meier-Allee 63, D-28213 Bremen http://www.thetaphi.de eMail: uwe [at] thetaphi > -----Original Message----- > From: Praveen Yarlagadda [mailto:praveen.yarlagadda [at] gmail] > Sent: Wednesday, February 01, 2012 8:51 AM > To: java-user [at] lucene > Subject: too many boolean clauses > > Hi all, > > I have been using lucene with Hibernate to index the data. Each document is > indexed with two fields: id and content. Each document corresponds to a record > in the database. In my usecase, search needs to work like this: > > 1. Fetch records from the database based on some criteria 2. Search for the > keywords only in the records found above > > I am preparing the search query like this: +(content: (hello world)) +(id: > (234 235 899 534 345 898)) > > If the number of documents (in the identifier field) reaches more than 1024, > search fails with "too many boolean clauses". I can't use range query. > > Is there any other way to prepare the search query? How do I search for > keywords in select documents? > > If you have any suggestions, please let me know. > > Thanks, > Praveen --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscribe [at] lucene For additional commands, e-mail: java-user-help [at] lucene
|