summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch
diff options
context:
space:
mode:
authorChristoph Büscher <christoph@elastic.co>2017-06-29 13:32:13 +0200
committerGitHub <noreply@github.com>2017-06-29 13:32:13 +0200
commitaa2038f9d7f1ed595e65a26e6eb9ad69663764a1 (patch)
tree111239a254210b1bd97c381c34967e3a7a6ff85f /core/src/main/java/org/elasticsearch
parent3518e313b81564d2868c834111d716997dd86033 (diff)
Use DocumentField#toXContent and parsing in SearchHit (#25469)
As a small follow-up to #25361, we can use DocumentFields toXContent/fromXContent in SearchHit now.
Diffstat (limited to 'core/src/main/java/org/elasticsearch')
-rw-r--r--core/src/main/java/org/elasticsearch/search/SearchHit.java17
1 files changed, 4 insertions, 13 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/SearchHit.java b/core/src/main/java/org/elasticsearch/search/SearchHit.java
index 21a77bfd4b..4300cbcc11 100644
--- a/core/src/main/java/org/elasticsearch/search/SearchHit.java
+++ b/core/src/main/java/org/elasticsearch/search/SearchHit.java
@@ -435,11 +435,7 @@ public final class SearchHit implements Streamable, ToXContentObject, Iterable<D
if (!otherFields.isEmpty()) {
builder.startObject(Fields.FIELDS);
for (DocumentField field : otherFields) {
- builder.startArray(field.getName());
- for (Object value : field.getValues()) {
- builder.value(value);
- }
- builder.endArray();
+ field.toXContent(builder, params);
}
builder.endObject();
}
@@ -600,14 +596,9 @@ public final class SearchHit implements Streamable, ToXContentObject, Iterable<D
private static Map<String, DocumentField> parseFields(XContentParser parser) throws IOException {
Map<String, DocumentField> fields = new HashMap<>();
- while ((parser.nextToken()) != XContentParser.Token.END_OBJECT) {
- String fieldName = parser.currentName();
- ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser::getTokenLocation);
- List<Object> values = new ArrayList<>();
- while ((parser.nextToken()) != XContentParser.Token.END_ARRAY) {
- values.add(parseStoredFieldsValue(parser));
- }
- fields.put(fieldName, new DocumentField(fieldName, values));
+ while (parser.nextToken() != XContentParser.Token.END_OBJECT) {
+ DocumentField field = DocumentField.fromXContent(parser);
+ fields.put(field.getName(), field);
}
return fields;
}