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]


Reply via email to