The semantics of the phrase query you're constructing probably aren't what you think. As best I can infer, you are trying to do something like
"green tree" in field1 or "green tree" in field 2 but that's not even close to what you're constructing. It would help a show what the query you want is in some form like that above before trying to code it, because the actual query you're making is something like asking for the phrase "word1 in field1 word1 in field2 word2 in field1 word2 in field2" Actually, I can't render the semantics of what you're doing int English. And Lucene can't parse it either. I suspect you want something like PhraseQuery pq1 PhraseQuery pq2 for (String word : words) { pq1.add(...); pq2.add(...) } BooleanQuery bq(). bq.add(p1, .... SHOULD); bq.add(p2, ... SHOULD); Index.search(bq); Best Erick On Nov 22, 2007 7:17 AM, Rapthor <[EMAIL PROTECTED]> wrote: > > There is no option to provide an Occur.SHOULD to the PhraseQuery. So where > does it go? I changed the source to look like this: > > PhraseQuery pq = new PhraseQuery(); > for (String word : words) { > for (String field : fields) { > pq.add(new Term(field, word)); > } > } > Hits hits = indexSearcher.search(pq); > > However, I get an exception: > java.lang.IllegalArgumentException: All phrase terms must be in the same > field: description:green tree > > I don't understand how to a) search for combinations of words like "green > tree", b) search in multiple fields (description, text, ...) and c) search > by a SHOULD restriction. > -- > View this message in context: > http://www.nabble.com/AND-query-in-SHOULD-tf4855719.html#a13895700 > Sent from the Lucene - Java Users mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >