blob: 2381bf45646cb5ed7f1822a71d1bca518d763bb1 [file] [log] [blame]
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/blocktree/BlockTreeTermsReader.java b/lucene/core/src/java/org/apache/lucene/codecs/blocktree/BlockTreeTermsReader.java
index 0ef21292c0..742accece4 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/blocktree/BlockTreeTermsReader.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/blocktree/BlockTreeTermsReader.java
@@ -21,9 +21,10 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import java.util.TreeMap;
+import java.util.Map;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.codecs.FieldsProducer;
@@ -119,7 +120,7 @@ public final class BlockTreeTermsReader extends FieldsProducer {
// produce DocsEnum on demand
final PostingsReaderBase postingsReader;
- private final TreeMap<String,FieldReader> fields = new TreeMap<>();
+ private final Map<String,FieldReader> fields = new HashMap<>();
final String segment;
@@ -257,7 +258,9 @@ public final class BlockTreeTermsReader extends FieldsProducer {
@Override
public Iterator<String> iterator() {
- return Collections.unmodifiableSet(fields.keySet()).iterator();
+ List<String> fieldNames = new ArrayList<>(fields.keySet());
+ Collections.sort(fieldNames);
+ return Collections.unmodifiableList(fieldNames).iterator();
}
@Override
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java b/lucene/core/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java
index 36f035854d..429ab6599d 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java
@@ -29,7 +29,6 @@ import java.util.List;
import java.util.Map;
import java.util.ServiceLoader; // javadocs
import java.util.Set;
-import java.util.TreeMap;
import java.util.TreeSet;
import org.apache.lucene.codecs.FieldsConsumer;
@@ -247,7 +246,7 @@ public abstract class PerFieldPostingsFormat extends PostingsFormat {
private static final long BASE_RAM_BYTES_USED = RamUsageEstimator.shallowSizeOfInstance(FieldsReader.class);
- private final Map<String,FieldsProducer> fields = new TreeMap<>();
+ private final Map<String,FieldsProducer> fields = new HashMap<>();
private final Map<String,FieldsProducer> formats = new HashMap<>();
private final String segment;
@@ -308,7 +307,9 @@ public abstract class PerFieldPostingsFormat extends PostingsFormat {
@Override
public Iterator<String> iterator() {
- return Collections.unmodifiableSet(fields.keySet()).iterator();
+ List<String> fieldNames = new ArrayList<>(fields.keySet());
+ Collections.sort(fieldNames);
+ return Collections.unmodifiableList(fieldNames).iterator();
}
@Override