This is an extension/modification of Chucks patch.
Besides his changes, it contains more test cases (in TestMultiSearcherRanking)
and minor additional modifications to make these tests work:
- if the resulting query consists of only one clause, return that clause
directly instead of wrapping it into a BooleanQuery.
- BooleanQuery.equals doesn't take clause order into account anymore
I also have rewritten the loop logic of Query.combine to use a flag instead
of a labeled break, but this is more a matter of taste.