Skip to content

Commit 3e73bf3

Browse files
authored
Add CopyFrom to SetProcessor (#6276)
1 parent cd3fa85 commit 3e73bf3

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/Nest/Ingest/Processors/SetProcessor.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ public interface ISetProcessor : IProcessor
4646
/// </summary>
4747
[DataMember(Name = "ignore_empty_value")]
4848
bool? IgnoreEmptyValue { get; set; }
49+
50+
/// <summary>
51+
/// The origin field which will be copied to field, cannot set value simultaneously.
52+
/// </summary>
53+
[DataMember(Name = "copy_from")]
54+
Field CopyFrom { get; set; }
4955
}
5056

5157
/// <inheritdoc cref="ISetProcessor" />
@@ -59,6 +65,9 @@ public class SetProcessor : ProcessorBase, ISetProcessor
5965
public bool? Override { get; set; }
6066
/// <inheritdoc />
6167
public bool? IgnoreEmptyValue { get; set; }
68+
/// <inheritdoc />
69+
public Field CopyFrom { get; set; }
70+
6271
protected override string Name => "set";
6372
}
6473

@@ -71,6 +80,7 @@ public class SetProcessorDescriptor<T> : ProcessorDescriptorBase<SetProcessorDes
7180
object ISetProcessor.Value { get; set; }
7281
bool? ISetProcessor.Override { get; set; }
7382
bool? ISetProcessor.IgnoreEmptyValue { get; set; }
83+
Field ISetProcessor.CopyFrom { get; set; }
7484

7585
/// <inheritdoc cref="ISetProcessor.Field"/>
7686
public SetProcessorDescriptor<T> Field(Field field) => Assign(field, (a, v) => a.Field = v);
@@ -88,5 +98,12 @@ public SetProcessorDescriptor<T> Field<TValue>(Expression<Func<T, TValue>> objec
8898
/// <inheritdoc cref="ISetProcessor.IgnoreEmptyValue"/>
8999
public SetProcessorDescriptor<T> IgnoreEmptyValue(bool? ignoreEmptyValue = true) =>
90100
Assign(ignoreEmptyValue, (a, v) => a.IgnoreEmptyValue = v);
101+
102+
/// <inheritdoc cref="ISetProcessor.CopyFrom"/>
103+
public SetProcessorDescriptor<T> CopyFrom(Field field) => Assign(field, (a, v) => a.CopyFrom = v);
104+
105+
/// <inheritdoc cref="ISetProcessor.CopyFrom"/>
106+
public SetProcessorDescriptor<T> CopyFrom<TValue>(Expression<Func<T, TValue>> objectPath) =>
107+
Assign(objectPath, (a, v) => a.CopyFrom = v);
91108
}
92109
}

0 commit comments

Comments
 (0)