diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/fields/SearchFieldsIT.java b/server/src/internalClusterTest/java/org/elasticsearch/search/fields/SearchFieldsIT.java index 1f911f5d59038..5ee11e0e9a657 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/fields/SearchFieldsIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/search/fields/SearchFieldsIT.java @@ -1120,9 +1120,10 @@ public void testLoadMetadata() throws Exception { assertSearchResponse(response); assertHitCount(response, 1); - Map fields = response.getHits().getAt(0).getFields(); + Map fields = response.getHits().getAt(0).getMetadataFields(); assertThat(fields.get("field1"), nullValue()); assertThat(fields.get("_routing").getValue().toString(), equalTo("1")); + assertThat(response.getHits().getAt(0).getDocumentFields().size(), equalTo(0)); } } diff --git a/server/src/main/java/org/elasticsearch/search/SearchHit.java b/server/src/main/java/org/elasticsearch/search/SearchHit.java index d3b744f3b4f03..3a9c7cf697ad6 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchHit.java +++ b/server/src/main/java/org/elasticsearch/search/SearchHit.java @@ -449,9 +449,23 @@ public void setDocumentField(String fieldName, DocumentField field) { this.documentFields.put(fieldName, field); } + /** + * @return a map of metadata fields for this hit + */ + public Map getMetadataFields() { + return Collections.unmodifiableMap(metaFields); + } + + /** + * @return a map of non-metadata fields requested for this hit + */ + public Map getDocumentFields() { + return Collections.unmodifiableMap(documentFields); + } + /** * A map of hit fields (from field name to hit fields) if additional fields - * were required to be loaded. + * were required to be loaded. Includes both document and metadata fields. */ public Map getFields() { if (metaFields.size() > 0 || documentFields.size() > 0) {