Ok, I just tested it. So consider: String string = "word -foo"; String[] fields = { "title", "body" };
For the MultField I have: MultiFieldQueryParser qp = new MultiFieldQueryParser(fields, SearchEngine.ANALYZER); Query fieldsQuery = qp.parse(string); System.out.println(fieldsQuery);
(title:word body:word) -(title:foo body:foo)
And for the boolean: BooleanQuery fieldsQuery = new BooleanQuery(); for (String field : fields) { QueryParser qp = new QueryParser(field, SearchEngine.ANALYZER); fieldsQuery.add(qp.parse(string), BooleanClause.Occur.SHOULD); } System.out.println(fieldsQuery);
(title:word -title:foo) (body:word -body:foo)
quite different!! On 7/26/06, Doron Cohen <[EMAIL PROTECTED]> wrote:
By the resulted query toString(), boolean query would not work correctly: qtxt: a foo [1] Multi Field Query (OR) : (title:a body:a) (title:foo body:foo) [2] Multi Field Query (AND): +(title:a body:a) +(title:foo body:foo) [3] Boolean Query : (title:a title:foo) (body:a body:foo) --> By a chance, all are equivalent, returning doc1. qtxt: a -foo [1] Multi Field Query (OR) : (title:a body:a) -(title:foo body:foo) [2] Multi Field Query (AND): +(title:a body:a) -(title:foo body:foo) [3] Boolean Query : (title:a -title:foo) (body:a -body:foo) --> Here [1,2] "correctly" return no docs, but [3] returns doc1. qtxt: +a +foo [1] Multi Field Query (OR) : +(title:a body:a) +(title:foo body:foo) [2] Multi Field Query (AND): +(title:a body:a) +(title:foo body:foo) [3] Boolean Query : (+title:a +title:foo) (+body:a +body:foo) --> Now [1,2] "correctly" return doc1, but [3] returns no docs. qtxt: a +foo [1] Multi Field Query (OR) : (title:a body:a) +(title:foo body:foo) [2] Multi Field Query (AND): +(title:a body:a) +(title:foo body:foo) [3] Boolean Query : (title:a +title:foo) (body:a +body:foo) --> All "correctly" return doc1. - Doron Daniel Noll <[EMAIL PROTECTED]> wrote on 25/07/2006 23:11:15: > Marvin Humphrey wrote: > > I believe that this will cause difficulties with prohibited terms. Say > > you have these two documents... > > > > Doc 1: > > title: a > > body: foo > > Doc 2: > > title: b > > body: bar > > It's not just prohibited terms. Happens for required terms too. A > search for "a AND foo" would return no hits there even though it's a hit. > > Daniel > > > -- > Daniel Noll > > Nuix Pty Ltd > Suite 79, 89 Jones St, Ultimo NSW 2007, Australia Ph: +61 2 9280 0699 > Web: http://www.nuix.com.au/ Fax: +61 2 9212 6902 > > This message is intended only for the named recipient. If you are not > the intended recipient you are notified that disclosing, copying, > distributing or taking any action in reliance on the contents of this > message or attachment is strictly prohibited. > > --------------------------------------------------------------------- > 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]
-- Paulo E. A. Silveira Caelum Ensino e Soluções em Java http://www.caelum.com.br/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]