You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by cp...@apache.org on 2022/09/20 14:18:21 UTC
[solr] 02/03: reduce array allocation in ExtendedDismaxQParser.UserFields (#1017)
This is an automated email from the ASF dual-hosted git repository.
cpoerschke pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
commit 2f82431095aea56cac4325667eea53b40676f4d8
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Tue Sep 20 15:14:28 2022 +0100
reduce array allocation in ExtendedDismaxQParser.UserFields (#1017)
(cherry picked from commit b35ccf8efa0b11bbb03b9e534b316af553288d6c)
---
.../src/java/org/apache/solr/search/ExtendedDismaxQParser.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
index a3d9bb66a6a..5e3ba654b25 100644
--- a/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
+++ b/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParser.java
@@ -21,7 +21,6 @@ import com.google.common.collect.Multimaps;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -1564,11 +1563,14 @@ public class ExtendedDismaxQParser extends QParser {
if (!userFieldsMap.containsKey(MagicFieldName.QUERY.field)) {
userFieldsMap.put("-" + MagicFieldName.QUERY.field, null);
}
- Collections.sort(dynUserFields);
dynamicUserFields = dynUserFields.toArray(new DynamicField[dynUserFields.size()]);
- Collections.sort(negDynUserFields);
+ Arrays.sort(dynamicUserFields);
+ // Avoid creating the array twice by converting to an array first and using Arrays.sort(),
+ // rather than Collections.sort() then converting to an array, since Collections.sort()
+ // copies to an array first, then sets each collection member from the array.
negativeDynamicUserFields =
negDynUserFields.toArray(new DynamicField[negDynUserFields.size()]);
+ Arrays.sort(negativeDynamicUserFields);
}
/**