@Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); out.writeVInt(shardId); out.writeOptionalString(preference); out.writeVInt(items.size()); for (Item item : items) { out.writeVInt(item.slot); OriginalIndices.writeOriginalIndices(item.request.originalIndices(), out); out.writeString(item.request.documentType()); out.writeBytesReference(item.request.source()); out.writeBytesReference(item.request.docSource()); out.writeBoolean(item.request.onlyCount()); } }
@Override public void readFrom(StreamInput in) throws IOException { super.readFrom(in); type = in.readString(); id = in.readString(); routing = in.readOptionalString(); preference = in.readOptionalString(); source = in.readBytesReference(); filteringAlias = in.readStringArray(); if (in.readBoolean()) { fields = in.readStringArray(); } fetchSourceContext = FetchSourceContext.optionalReadFromStream(in); nowInMillis = in.readVLong(); }
@Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); out.writeString(type); out.writeString(id); out.writeOptionalString(routing); out.writeOptionalString(preference); out.writeBytesReference(source); out.writeStringArray(filteringAlias); if (fields != null) { out.writeBoolean(true); out.writeStringArray(fields); } else { out.writeBoolean(false); } FetchSourceContext.optionalWriteToStream(fetchSourceContext, out); out.writeVLong(nowInMillis); }
@Override public void readFrom(StreamInput in) throws IOException { super.readFrom(in); shardId = in.readVInt(); preference = in.readOptionalString(); int size = in.readVInt(); items = new ArrayList<>(size); for (int i = 0; i < size; i++) { int slot = in.readVInt(); OriginalIndices originalIndices = OriginalIndices.readOriginalIndices(in); PercolateShardRequest shardRequest = new PercolateShardRequest(new ShardId(index, shardId), originalIndices); shardRequest.documentType(in.readString()); shardRequest.source(in.readBytesReference()); shardRequest.docSource(in.readBytesReference()); shardRequest.onlyCount(in.readBoolean()); Item item = new Item(slot, shardRequest); items.add(item); } }