public FieldSortDescriptor Nested(NestedSortDescriptor descriptor) => Assign(descriptor, (a, v) => a._nestedSortDescriptor = v);
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) { writer.WriteStartObject(); writer.WritePropertyName(settings.Inferrer.Field(_field)); writer.WriteStartObject(); if (_order.HasValue) { writer.WritePropertyName("order"); JsonSerializer.Serialize(writer, _order.Value, options); } if (_missing is not null) { writer.WritePropertyName("missing"); JsonSerializer.Serialize(writer, _missing, options); } if (_sortMode is not null) { writer.WritePropertyName("mode"); JsonSerializer.Serialize(writer, _sortMode, options); } if (!string.IsNullOrEmpty(_format)) { writer.WritePropertyName("format"); writer.WriteStringValue(_format); } if (_ignoreUnmappedFields.HasValue) { writer.WritePropertyName("ignore_unmapped"); JsonSerializer.Serialize(writer, _ignoreUnmappedFields.Value, options); } if (_nestedSort is not null) { writer.WritePropertyName("nested"); JsonSerializer.Serialize(writer, _nestedSort, options); } else if (_nestedSortDescriptor is not null) { writer.WritePropertyName("nested"); JsonSerializer.Serialize(writer, _nestedSortDescriptor, options); } else if (_nestedSortDescriptorAction is not null) { writer.WritePropertyName("nested"); var descriptor = new NestedSortDescriptor(); _nestedSortDescriptorAction(descriptor); JsonSerializer.Serialize(writer, descriptor, options); } if (_unmappedType.HasValue) { writer.WritePropertyName("unmapped_type"); JsonSerializer.Serialize(writer, _unmappedType.Value, options); } writer.WriteEndObject(); writer.WriteEndObject(); }
protected override void Serialize(Utf8JsonWriter writer, JsonSerializerOptions options, IElasticsearchClientSettings settings) { writer.WriteStartObject(); writer.WritePropertyName("_script"); writer.WriteStartObject(); if (_order.HasValue) { writer.WritePropertyName("order"); JsonSerializer.Serialize(writer, _order.Value, options); } if (_sortMode.HasValue) { writer.WritePropertyName("mode"); JsonSerializer.Serialize(writer, _sortMode.Value, options); } if (_nestedSort is not null) { writer.WritePropertyName("nested"); JsonSerializer.Serialize(writer, _nestedSort, options); } else if (_nestedSortDescriptor is not null) { writer.WritePropertyName("nested"); JsonSerializer.Serialize(writer, _nestedSortDescriptor, options); } else if (_nestedSortDescriptorAction is not null) { writer.WritePropertyName("nested"); var descriptor = new NestedSortDescriptor(); _nestedSortDescriptorAction(descriptor); JsonSerializer.Serialize(writer, descriptor, options); } if (_script is not null) { writer.WritePropertyName("script"); JsonSerializer.Serialize(writer, _script, options); } else if (_inlineScriptDescriptor is not null) { writer.WritePropertyName("script"); JsonSerializer.Serialize(writer, _inlineScriptDescriptor, options); } else if (_inlineScriptDescriptorAction is not null) { writer.WritePropertyName("script"); var descriptor = new InlineScriptDescriptor(); _inlineScriptDescriptorAction(descriptor); JsonSerializer.Serialize(writer, descriptor, options); } if (_scriptSortType.HasValue) { writer.WritePropertyName("type"); JsonSerializer.Serialize(writer, _scriptSortType.Value, options); } writer.WriteEndObject(); writer.WriteEndObject(); }