Procházet zdrojové kódy

Now really fix eager fielddata loading.

Relates to #5557
Martijn van Groningen před 11 roky
rodič
revize
22b13f5449

+ 12 - 5
src/main/java/org/elasticsearch/search/SearchService.java

@@ -767,15 +767,22 @@ public class SearchService extends AbstractLifecycleComponent<SearchService> {
                     if (fieldDataType == null) {
                         continue;
                     }
-                    final String indexName = fieldMapper.names().indexName();
                     if (fieldMapper instanceof ParentFieldMapper) {
                         ParentFieldMapper parentFieldMapper = (ParentFieldMapper) fieldMapper;
-                        if (parentFieldMapper.active()) {
-                            warmUp.put(indexName, parentFieldMapper);
+                        if (!parentFieldMapper.active()) {
+                            continue;
+                        }
+                    } else {
+                        if (fieldDataType.getLoading() != Loading.EAGER) {
+                            continue;
                         }
-                    } else if (fieldDataType.getLoading() != Loading.EAGER && !warmUp.containsKey(indexName)) {
-                        warmUp.put(indexName, fieldMapper);
                     }
+
+                    final String indexName = fieldMapper.names().indexName();
+                    if (warmUp.containsKey(indexName)) {
+                        continue;
+                    }
+                    warmUp.put(indexName, fieldMapper);
                 }
             }
             final IndexFieldDataService indexFieldDataService = indexShard.indexFieldDataService();