Skip to content

Commit

Permalink
Corrected backward compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
sandmannn committed Jun 10, 2019
1 parent 8745b55 commit 269f3b8
Showing 1 changed file with 11 additions and 24 deletions.
35 changes: 11 additions & 24 deletions server/src/main/java/org/elasticsearch/search/SearchHit.java
Expand Up @@ -168,7 +168,7 @@ public SearchHit(StreamInput in) throws IOException {
if (in.readBoolean()) {
explanation = readExplanation(in);
}
if (in.getVersion().onOrAfter(Version.V_8_0_0)) {
if (in.getVersion().onOrAfter(Version.V_7_3_0)) {
documentFields = readFields(in);
metaFields = readFields(in);
} else {
Expand Down Expand Up @@ -235,7 +235,7 @@ public void writeTo(StreamOutput out) throws IOException {
writeExplanation(out, explanation);
}

if (out.getVersion().onOrAfter(Version.V_8_0_0)) {
if (out.getVersion().onOrAfter(Version.V_7_3_0)) {
writeFields(out, documentFields);
writeFields(out, metaFields);
} else {
Expand Down Expand Up @@ -297,13 +297,13 @@ private void writeFields(StreamOutput out, Map<String, DocumentField> fields) t
}
}

private void splitFieldsByMetadata(Map<String, DocumentField> fields, Map<String, DocumentField> outOther,
private void splitFieldsByMetadata(Map<String, DocumentField> fields, Map<String, DocumentField> outDocument,
Map<String, DocumentField> outMetadata) {
for (Map.Entry<String, DocumentField> fieldEntry: fields.entrySet()) {
if (fieldEntry.getValue().isMetadataField()) {
outMetadata.put(fieldEntry.getKey(), fieldEntry.getValue());
} else {
outOther.put(fieldEntry.getKey(), fieldEntry.getValue());
outDocument.put(fieldEntry.getKey(), fieldEntry.getValue());
}
}
}
Expand Down Expand Up @@ -488,11 +488,9 @@ public Map<String, DocumentField> fieldsOrNull() {
}

public void fields(Map<String, DocumentField> fields) {
this.metaFields.clear();
this.documentFields.clear();
if (fields == null) {
return;
}
Objects.requireNonNull(fields);
this.metaFields = new HashMap<String, DocumentField>();
this.documentFields = new HashMap<String, DocumentField>();
for (Map.Entry<String, DocumentField> fieldEntry: fields.entrySet()) {
if (fieldEntry.getValue().isMetadataField()) {
this.metaFields.put(fieldEntry.getKey(), fieldEntry.getValue());
Expand Down Expand Up @@ -606,6 +604,7 @@ public static class Fields {
static final String _SEQ_NO = "_seq_no";
static final String _PRIMARY_TERM = "_primary_term";
static final String _SCORE = "_score";
static final String FIELDS = "fields";
static final String DOCUMENT_FIELDS = "document_fields";
static final String METADATA_FIELDS = "metadata_fields";
static final String HIGHLIGHT = "highlight";
Expand Down Expand Up @@ -676,19 +675,12 @@ public XContentBuilder toInnerXContent(XContentBuilder builder, Params params) t
XContentHelper.writeRawField(SourceFieldMapper.NAME, source, builder, params);
}
if (!documentFields.isEmpty()) {
builder.startObject(Fields.DOCUMENT_FIELDS);
builder.startObject(Fields.FIELDS);
for (DocumentField field : documentFields.values()) {
field.toXContent(builder, params);
}
builder.endObject();
}
if (!metaFields.isEmpty()) {
builder.startObject(Fields.METADATA_FIELDS);
for (DocumentField field : metaFields.values()) {
field.toXContent(builder, params);
}
builder.endObject();
}
if (highlightFields != null && !highlightFields.isEmpty()) {
builder.startObject(Fields.HIGHLIGHT);
for (HighlightField field : highlightFields.values()) {
Expand Down Expand Up @@ -758,15 +750,10 @@ public static void declareInnerHitsParseFields(ObjectParser<Map<String, Object>,
parser.declareObject((map, value) -> map.put(Fields.HIGHLIGHT, value), (p, c) -> parseHighlightFields(p),
new ParseField(Fields.HIGHLIGHT));
parser.declareObject((map, value) -> {
Map<String, DocumentField> fieldMap = get(Fields.METADATA_FIELDS, map, new HashMap<String, DocumentField>());
fieldMap.putAll(value);
map.put(Fields.METADATA_FIELDS, fieldMap);
}, (p, c) -> parseFields(p), new ParseField(Fields.METADATA_FIELDS));
parser.declareObject((map, value) -> {
Map<String, DocumentField> fieldMap = get(Fields.DOCUMENT_FIELDS, map, new HashMap<String, DocumentField>());
Map<String, DocumentField> fieldMap = get(Fields.FIELDS, map, new HashMap<String, DocumentField>());
fieldMap.putAll(value);
map.put(Fields.DOCUMENT_FIELDS, fieldMap);
}, (p, c) -> parseFields(p), new ParseField(Fields.DOCUMENT_FIELDS));
}, (p, c) -> parseFields(p), new ParseField(Fields.FIELDS));
parser.declareObject((map, value) -> map.put(Fields._EXPLANATION, value), (p, c) -> parseExplanation(p),
new ParseField(Fields._EXPLANATION));
parser.declareObject((map, value) -> map.put(NestedIdentity._NESTED, value), NestedIdentity::fromXContent,
Expand Down

0 comments on commit 269f3b8

Please sign in to comment.