@@ -25,6 +25,8 @@ public class IntervalsQuery : FieldNameQueryBase, IIntervalsQuery
25
25
public IIntervalsAnyOf AnyOf { get ; set ; }
26
26
/// <inheritdoc cref="IIntervalsMatch"/>
27
27
public IIntervalsMatch Match { get ; set ; }
28
+ /// <inheritdoc cref="IIntervalsFuzzy"/>
29
+ public IIntervalsFuzzy Fuzzy { get ; set ; }
28
30
29
31
/// <inheritdoc cref="IIntervalsPrefix"/>
30
32
public IIntervalsPrefix Prefix { get ; set ; }
@@ -35,7 +37,8 @@ public class IntervalsQuery : FieldNameQueryBase, IIntervalsQuery
35
37
protected override bool Conditionless => IsConditionless ( this ) ;
36
38
37
39
internal static bool IsConditionless ( IIntervalsQuery q ) =>
38
- q . Field . IsConditionless ( ) || q . Match == null && q . AllOf == null && q . AnyOf == null && q . Prefix == null && q . Wildcard == null ;
40
+ q . Field . IsConditionless ( ) || q . Match == null && q . AllOf == null && q . AnyOf == null && q . Prefix == null && q . Wildcard == null
41
+ && q . Fuzzy == null ;
39
42
40
43
internal override void InternalWrapInContainer ( IQueryContainer container ) => container . Intervals = this ;
41
44
}
@@ -50,10 +53,15 @@ public class IntervalsQueryDescriptor<T>
50
53
51
54
IIntervalsAllOf IIntervalsContainer . AllOf { get ; set ; }
52
55
IIntervalsAnyOf IIntervalsContainer . AnyOf { get ; set ; }
56
+ IIntervalsFuzzy IIntervalsContainer . Fuzzy { get ; set ; }
53
57
IIntervalsMatch IIntervalsContainer . Match { get ; set ; }
54
58
IIntervalsPrefix IIntervalsContainer . Prefix { get ; set ; }
55
59
IIntervalsWildcard IIntervalsContainer . Wildcard { get ; set ; }
56
60
61
+ /// <inheritdoc cref="IntervalsQuery.Fuzzy" />
62
+ public IntervalsQueryDescriptor < T > Fuzzy ( Func < IntervalsFuzzyDescriptor , IIntervalsFuzzy > selector ) =>
63
+ Assign ( selector , ( a , v ) => a . Fuzzy = v ? . Invoke ( new IntervalsFuzzyDescriptor ( ) ) ) ;
64
+
57
65
/// <inheritdoc cref="IntervalsQuery.Match" />
58
66
public IntervalsQueryDescriptor < T > Match ( Func < IntervalsMatchDescriptor , IIntervalsMatch > selector ) =>
59
67
Assign ( selector , ( a , v ) => a . Match = v ? . Invoke ( new IntervalsMatchDescriptor ( ) ) ) ;
@@ -88,6 +96,10 @@ public interface IIntervalsContainer
88
96
[ DataMember ( Name = "any_of" ) ]
89
97
IIntervalsAnyOf AnyOf { get ; set ; }
90
98
99
+ /// <inheritdoc cref="IIntervalsFuzzy" />
100
+ [ DataMember ( Name = "fuzzy" ) ]
101
+ IIntervalsFuzzy Fuzzy { get ; set ; }
102
+
91
103
/// <inheritdoc cref="IIntervalsMatch" />
92
104
[ DataMember ( Name = "match" ) ]
93
105
IIntervalsMatch Match { get ; set ; }
@@ -120,6 +132,7 @@ public IntervalsContainer(IntervalsNoFilterBase intervals)
120
132
121
133
IIntervalsAllOf IIntervalsContainer . AllOf { get ; set ; }
122
134
IIntervalsAnyOf IIntervalsContainer . AnyOf { get ; set ; }
135
+ IIntervalsFuzzy IIntervalsContainer . Fuzzy { get ; set ; }
123
136
IIntervalsMatch IIntervalsContainer . Match { get ; set ; }
124
137
IIntervalsPrefix IIntervalsContainer . Prefix { get ; set ; }
125
138
IIntervalsWildcard IIntervalsContainer . Wildcard { get ; set ; }
@@ -141,6 +154,10 @@ public class IntervalsDescriptor : IntervalsContainer
141
154
private IntervalsDescriptor Assign < TValue > ( TValue value , Action < IIntervalsContainer , TValue > assigner ) =>
142
155
Fluent . Assign ( this , value , assigner ) ;
143
156
157
+ /// <inheritdoc cref="IntervalsFuzzyDescriptor" />
158
+ public IntervalsDescriptor Fuzzy ( Func < IntervalsFuzzyDescriptor , IIntervalsFuzzy > selector ) =>
159
+ Assign ( selector , ( a , v ) => a . Fuzzy = v ? . Invoke ( new IntervalsFuzzyDescriptor ( ) ) ) ;
160
+
144
161
/// <inheritdoc cref="IntervalsMatchDescriptor" />
145
162
public IntervalsDescriptor Match ( Func < IntervalsMatchDescriptor , IIntervalsMatch > selector ) =>
146
163
Assign ( selector , ( a , v ) => a . Match = v ? . Invoke ( new IntervalsMatchDescriptor ( ) ) ) ;
@@ -222,6 +239,10 @@ public class IntervalsListDescriptor : DescriptorPromiseBase<IntervalsListDescri
222
239
{
223
240
public IntervalsListDescriptor ( ) : base ( new List < IntervalsContainer > ( ) ) { }
224
241
242
+ /// <inheritdoc cref="IIntervalsFuzzy" />
243
+ public IntervalsListDescriptor Fuzzy ( Func < IntervalsFuzzyDescriptor , IIntervalsFuzzy > selector ) =>
244
+ Assign ( selector , ( a , v ) => a . AddIfNotNull ( new IntervalsDescriptor ( ) . Fuzzy ( v ) ) ) ;
245
+
225
246
/// <inheritdoc cref="IIntervalsMatch" />
226
247
public IntervalsListDescriptor Match ( Func < IntervalsMatchDescriptor , IIntervalsMatch > selector ) =>
227
248
Assign ( selector , ( a , v ) => a . AddIfNotNull ( new IntervalsDescriptor ( ) . Match ( v ) ) ) ;
0 commit comments