I assume it's a typo, but your for loop wouldn't produce your example as they'd all be the same field....
But that said, I suspect that your QueryParser is analyzing the tokens you feed it differently than how they're included when you make your own BooleanQuery. So, here's what I'd do. Use Query.toString() for both your BooleanQuery and the query produced by QueryParser and see what's different, if anything. That'll certainly give you a clue. If your QueryParser uses, for instance, the StandardAnalyzer, it'll lowercase, remove most punctuation, etc, which you wouldn't get with your manually constructed BooleanQuery. And, of course, get Luke if you haven't gotten a copy already to examine your index and see the effects of using various analyzers on a query. Hope this helps Erick On 2/8/07, Oliver Hummel <[EMAIL PROTECTED]> wrote:
Hi @all, I'm a little confused about the behaviour of BooleanQuery. I have a custom parser that analyzes some text and constrcuts an "ANDed" BooleanQuery. toString delivers something like this: (+field1:term1 +field2:term2) Looks pretty normal to me, but the problem is it delivers no results (although there are matching ones of course). What makes it even more confusing is the fact that when I take the above query and use it with the QueryParser it works and delivers the expected results... Any ideas? Perhaps anyone who is able to reproduce it? Am I doing something wrong or is there a bug? Here is how I produce the BooleanQuery: BooleanQuery bq = new BooleanQuery(); for (iterate over terms) { t = new Term(field, term); bq.add(new TermQuery(t), BooleanClause.Occur.MUST); } Any help appreciated, thanks in advance! Oliver --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]