diff --git a/src/main/java/org/elasticsearch/index/termvectors/ShardTermVectorService.java b/src/main/java/org/elasticsearch/index/termvectors/ShardTermVectorService.java index 9993edb4e1f..09eb85e88f7 100644 --- a/src/main/java/org/elasticsearch/index/termvectors/ShardTermVectorService.java +++ b/src/main/java/org/elasticsearch/index/termvectors/ShardTermVectorService.java @@ -107,7 +107,7 @@ public class ShardTermVectorService extends AbstractIndexShardComponent { if (topLevelFields == null) { topLevelFields = termVectorsByField; } - if (useDfs(request)) { + if (termVectorsByField != null && useDfs(request)) { dfs = getAggregatedDfs(termVectorsByField, request); } termVectorResponse.setFields(termVectorsByField, request.selectedFields(), request.getFlags(), topLevelFields, dfs); @@ -127,7 +127,7 @@ public class ShardTermVectorService extends AbstractIndexShardComponent { if (selectedFields != null) { termVectorsByField = addGeneratedTermVectors(get, termVectorsByField, request, selectedFields); } - if (useDfs(request)) { + if (termVectorsByField != null && useDfs(request)) { dfs = getAggregatedDfs(termVectorsByField, request); } termVectorResponse.setFields(termVectorsByField, request.selectedFields(), request.getFlags(), topLevelFields, dfs); diff --git a/src/test/java/org/elasticsearch/action/termvector/GetTermVectorTests.java b/src/test/java/org/elasticsearch/action/termvector/GetTermVectorTests.java index 565d21944d4..6e4c4b23131 100644 --- a/src/test/java/org/elasticsearch/action/termvector/GetTermVectorTests.java +++ b/src/test/java/org/elasticsearch/action/termvector/GetTermVectorTests.java @@ -90,8 +90,7 @@ public class GetTermVectorTests extends AbstractTermVectorTests { ensureYellow(); - // when indexing a field that simply has a question mark, the term - // vectors will be null + // when indexing a field that simply has a question mark, the term vectors will be null client().prepareIndex("test", "type1", "0").setSource("existingfield", "?").execute().actionGet(); refresh(); ActionFuture termVector = client().termVector(new TermVectorRequest(indexOrAlias(), "type1", "0") @@ -119,12 +118,14 @@ public class GetTermVectorTests extends AbstractTermVectorTests { ensureYellow(); - // when indexing a field that simply has a question mark, the term - // vectors will be null + // when indexing a field that simply has a question mark, the term vectors will be null client().prepareIndex("test", "type1", "0").setSource("anotherexistingfield", 1).execute().actionGet(); refresh(); ActionFuture termVector = client().termVector(new TermVectorRequest(indexOrAlias(), "type1", "0") - .selectedFields(new String[]{"existingfield"})); + .selectedFields(randomBoolean() ? new String[]{"existingfield"} : null) + .termStatistics(true) + .fieldStatistics(true) + .dfs(true)); // lets see if the null term vectors are caught... TermVectorResponse actionGet = termVector.actionGet();