This is better. If I'm not mistaken, however, it still does the wrong thing for a query like "(A^2 B)^2 C". In this case, A's boost should be set to 4, B's to 2 and C's to 1, however I think your code would set both A and B's boost to 2. Also, your code doesn't pass your test cases: junit.framework.AssertionFailedError: Query /(germ term)^2.0/ yielded /(germ^2.0 term^2.0)^2.0/, expecting /(germ term)^2.0/ As I said before, fixing this properly requires changes to the scoring code, not just to the query parser. Doug -- To unsubscribe, e-mail: For additional commands, e-mail: