Optimize patch of yesterday: only clone when needed.

git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@150140 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Doug Cutting 2003-11-25 21:16:36 +00:00
parent 393e5c2655
commit c76efdf450
1 changed files with 6 additions and 2 deletions

View File

@ -225,11 +225,15 @@ public class BooleanQuery extends Query {
if (clauses.size() == 1) { // optimize 1-clause queries
BooleanClause c = (BooleanClause)clauses.elementAt(0);
if (!c.prohibited) { // just return clause
Query query = c.query.rewrite(reader); // rewrite first
if (getBoost() != 1.0f) { // have to clone to boost
query = (Query)query.clone();
if (getBoost() != 1.0f) { // incorporate boost
if (query == c.query) // if rewrite was no-op
query = (Query)query.clone(); // then clone before boost
query.setBoost(getBoost() * query.getBoost());
}
return query;
}
}