summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java')
-rw-r--r--core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java23
1 files changed, 9 insertions, 14 deletions
diff --git a/core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java b/core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java
index de56a0f5c2..5981128126 100644
--- a/core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java
+++ b/core/src/main/java/org/elasticsearch/action/fieldstats/TransportFieldStatsTransportAction.java
@@ -19,9 +19,6 @@
package org.elasticsearch.action.fieldstats;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.MultiFields;
-import org.apache.lucene.index.Terms;
import org.elasticsearch.ExceptionsHelper;
import org.elasticsearch.action.ShardOperationFailedException;
import org.elasticsearch.action.support.ActionFilters;
@@ -102,9 +99,9 @@ public class TransportFieldStatsTransportAction extends TransportBroadcastAction
indicesMergedFieldStats.put(indexName, indexMergedFieldStats = new HashMap<>());
}
- Map<String, FieldStats> fieldStats = shardResponse.getFieldStats();
- for (Map.Entry<String, FieldStats> entry : fieldStats.entrySet()) {
- FieldStats existing = indexMergedFieldStats.get(entry.getKey());
+ Map<String, FieldStats<?>> fieldStats = shardResponse.getFieldStats();
+ for (Map.Entry<String, FieldStats<?>> entry : fieldStats.entrySet()) {
+ FieldStats<?> existing = indexMergedFieldStats.get(entry.getKey());
if (existing != null) {
if (existing.getType() != entry.getValue().getType()) {
throw new IllegalStateException(
@@ -156,22 +153,20 @@ public class TransportFieldStatsTransportAction extends TransportBroadcastAction
@Override
protected FieldStatsShardResponse shardOperation(FieldStatsShardRequest request) {
ShardId shardId = request.shardId();
- Map<String, FieldStats> fieldStats = new HashMap<>();
+ Map<String, FieldStats<?>> fieldStats = new HashMap<>();
IndexService indexServices = indicesService.indexServiceSafe(shardId.getIndex());
MapperService mapperService = indexServices.mapperService();
IndexShard shard = indexServices.getShard(shardId.id());
try (Engine.Searcher searcher = shard.acquireSearcher("fieldstats")) {
for (String field : request.getFields()) {
MappedFieldType fieldType = mapperService.fullName(field);
- if (fieldType != null) {
- IndexReader reader = searcher.reader();
- Terms terms = MultiFields.getTerms(reader, field);
- if (terms != null) {
- fieldStats.put(field, fieldType.stats(terms, reader.maxDoc()));
- }
- } else {
+ if (fieldType == null) {
throw new IllegalArgumentException("field [" + field + "] doesn't exist");
}
+ FieldStats<?> stats = fieldType.stats(searcher.reader());
+ if (stats != null) {
+ fieldStats.put(field, stats);
+ }
}
} catch (IOException e) {
throw ExceptionsHelper.convertToElastic(e);