Skip to content

Commit 4701749

Browse files
committed
Merge branch 'fix/master-multi-term-rewrite'
2 parents af36fbc + 7f07d07 commit 4701749

File tree

29 files changed

+364
-172
lines changed

29 files changed

+364
-172
lines changed

docs/query-dsl/compound/full-text/match/match-usage.asciidoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ q
3131
.FuzzyTranspositions()
3232
.MinimumShouldMatch(2)
3333
.Operator(Operator.Or)
34-
.FuzzyRewrite(RewriteMultiTerm.ConstantScoreBoolean)
34+
.FuzzyRewrite(MultiTermQueryRewrite.TopTermsBlendedFreqs(10))
3535
.Name("named_query")
3636
)
3737
----
@@ -51,7 +51,7 @@ new MatchQuery
5151
Fuzziness = Fuzziness.Auto,
5252
FuzzyTranspositions = true,
5353
MinimumShouldMatch = 2,
54-
FuzzyRewrite = RewriteMultiTerm.ConstantScoreBoolean,
54+
FuzzyRewrite = MultiTermQueryRewrite.TopTermsBlendedFreqs(10),
5555
Lenient = true,
5656
Operator = Operator.Or,
5757
}
@@ -67,7 +67,7 @@ new MatchQuery
6767
"boost": 1.1,
6868
"query": "hello world",
6969
"analyzer": "standard",
70-
"fuzzy_rewrite": "constant_score_boolean",
70+
"fuzzy_rewrite": "top_terms_blended_freqs_10",
7171
"fuzziness": "AUTO",
7272
"fuzzy_transpositions": true,
7373
"cutoff_frequency": 0.001,

docs/query-dsl/compound/full-text/multi-match/multi-match-usage.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ q
3131
.MaxExpansions(2)
3232
.Operator(Operator.Or)
3333
.MinimumShouldMatch(2)
34-
.FuzzyRewrite(RewriteMultiTerm.ConstantScoreBoolean)
34+
.FuzzyRewrite(MultiTermQueryRewrite.ConstantScoreBoolean)
3535
.TieBreaker(1.1)
3636
.CutoffFrequency(0.001)
3737
.Lenient()
@@ -56,7 +56,7 @@ new MultiMatchQuery
5656
MaxExpansions = 2,
5757
Operator = Operator.Or,
5858
MinimumShouldMatch = 2,
59-
FuzzyRewrite = RewriteMultiTerm.ConstantScoreBoolean,
59+
FuzzyRewrite = MultiTermQueryRewrite.ConstantScoreBoolean,
6060
TieBreaker = 1.1,
6161
CutoffFrequency = 0.001,
6262
Lenient = true,

docs/query-dsl/compound/full-text/query-string/query-string-usage.asciidoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ q
3838
.UseDisMax()
3939
.FuzzyPrefixLength(2)
4040
.FuzzyMaxExpansions(3)
41-
.FuzzyRewrite(RewriteMultiTerm.ConstantScore)
42-
.Rewrite(RewriteMultiTerm.ConstantScore)
41+
.FuzzyRewrite(MultiTermQueryRewrite.ConstantScore)
42+
.Rewrite(MultiTermQueryRewrite.ConstantScore)
4343
.Fuzziness(Fuzziness.Auto)
4444
.TieBreaker(1.2)
4545
.AnalyzeWildcard()
@@ -74,8 +74,8 @@ new QueryStringQuery
7474
UseDisMax = true,
7575
FuzzyPrefixLength = 2,
7676
FuzzyMaxExpansions = 3,
77-
FuzzyRewrite = RewriteMultiTerm.ConstantScore,
78-
Rewrite = RewriteMultiTerm.ConstantScore,
77+
FuzzyRewrite = MultiTermQueryRewrite.ConstantScore,
78+
Rewrite = MultiTermQueryRewrite.ConstantScore,
7979
Fuzziness = Fuzziness.Auto,
8080
TieBreaker = 1.2,
8181
AnalyzeWildcard = true,

docs/query-dsl/term-level/fuzzy/fuzzy-date-query-usage.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ q
2828
.Value(Project.Instance.StartedOn)
2929
.MaxExpansions(100)
3030
.PrefixLength(3)
31-
.Rewrite(RewriteMultiTerm.ConstantScore)
31+
.Rewrite(MultiTermQueryRewrite.ConstantScore)
3232
.Transpositions()
3333
)
3434
----
@@ -46,7 +46,7 @@ new FuzzyDateQuery
4646
Value = Project.Instance.StartedOn,
4747
MaxExpansions = 100,
4848
PrefixLength = 3,
49-
Rewrite = RewriteMultiTerm.ConstantScore,
49+
Rewrite = MultiTermQueryRewrite.ConstantScore,
5050
Transpositions = true
5151
}
5252
----

docs/query-dsl/term-level/fuzzy/fuzzy-numeric-query-usage.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ q
2828
.Value(12)
2929
.MaxExpansions(100)
3030
.PrefixLength(3)
31-
.Rewrite(RewriteMultiTerm.ConstantScore)
31+
.Rewrite(MultiTermQueryRewrite.ConstantScore)
3232
.Transpositions()
3333
)
3434
----
@@ -46,7 +46,7 @@ new FuzzyNumericQuery
4646
Value = 12,
4747
MaxExpansions = 100,
4848
PrefixLength = 3,
49-
Rewrite = RewriteMultiTerm.ConstantScore,
49+
Rewrite = MultiTermQueryRewrite.ConstantScore,
5050
Transpositions = true
5151
}
5252
----

docs/query-dsl/term-level/fuzzy/fuzzy-query-usage.asciidoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ q
2828
.Value("ki")
2929
.MaxExpansions(100)
3030
.PrefixLength(3)
31-
.Rewrite(RewriteMultiTerm.ConstantScore)
31+
.Rewrite(MultiTermQueryRewrite.ConstantScore)
3232
.Transpositions()
3333
)
3434
----
@@ -46,7 +46,7 @@ new FuzzyQuery
4646
Value = "ki",
4747
MaxExpansions = 100,
4848
PrefixLength = 3,
49-
Rewrite = RewriteMultiTerm.ConstantScore,
49+
Rewrite = MultiTermQueryRewrite.ConstantScore,
5050
Transpositions = true
5151
}
5252
----

docs/query-dsl/term-level/prefix/prefix-query-usage.asciidoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ q
2525
.Boost(1.1)
2626
.Field(p => p.Description)
2727
.Value("proj")
28-
.Rewrite(RewriteMultiTerm.TopTermsBoostN)
28+
.Rewrite(MultiTermQueryRewrite.TopTerms(10))
2929
)
3030
----
3131

@@ -39,7 +39,7 @@ new PrefixQuery
3939
Boost = 1.1,
4040
Field = "description",
4141
Value = "proj",
42-
Rewrite = RewriteMultiTerm.TopTermsBoostN
42+
Rewrite = MultiTermQueryRewrite.TopTerms(10)
4343
}
4444
----
4545

@@ -51,7 +51,7 @@ new PrefixQuery
5151
"description": {
5252
"_name": "named_query",
5353
"boost": 1.1,
54-
"rewrite": "top_terms_boost_N",
54+
"rewrite": "top_terms_10",
5555
"value": "proj"
5656
}
5757
}

docs/query-dsl/term-level/wildcard/wildcard-query-usage.asciidoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ q
2525
.Boost(1.1)
2626
.Field(p => p.Description)
2727
.Value("p*oj")
28-
.Rewrite(RewriteMultiTerm.TopTermsBoostN)
28+
.Rewrite(MultiTermQueryRewrite.TopTermsBoost(10))
2929
)
3030
----
3131

@@ -39,7 +39,7 @@ new WildcardQuery
3939
Boost = 1.1,
4040
Field = "description",
4141
Value = "p*oj",
42-
Rewrite = RewriteMultiTerm.TopTermsBoostN
42+
Rewrite = MultiTermQueryRewrite.TopTermsBoost(10)
4343
}
4444
----
4545

@@ -51,7 +51,7 @@ new WildcardQuery
5151
"description": {
5252
"_name": "named_query",
5353
"boost": 1.1,
54-
"rewrite": "top_terms_boost_N",
54+
"rewrite": "top_terms_boost_10",
5555
"value": "p*oj"
5656
}
5757
}

src/Nest/CommonAbstractions/Extensions/Extensions.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,23 @@ internal static IEnumerable<T> DistinctBy<T, TKey>(this IEnumerable<T> items, Fu
5656
}
5757

5858
internal static ConcurrentDictionary<string, object> _enumCache = new ConcurrentDictionary<string, object>();
59+
60+
internal static string ToEnumValue<T>(this T enumValue) where T : struct
61+
{
62+
var enumType = typeof(T);
63+
var name = Enum.GetName(enumType, enumValue);
64+
var enumMemberAttribute = enumType.GetField(name).GetCustomAttribute<EnumMemberAttribute>();
65+
66+
if (enumMemberAttribute != null)
67+
return enumMemberAttribute.Value;
68+
69+
var alternativeEnumMemberAttribute = enumType.GetField(name).GetCustomAttribute<AlternativeEnumMemberAttribute>();
70+
71+
return alternativeEnumMemberAttribute != null
72+
? alternativeEnumMemberAttribute.Value
73+
: enumValue.ToString();
74+
}
75+
5976
internal static T? ToEnum<T>(this string str, StringComparison comparison = StringComparison.OrdinalIgnoreCase) where T : struct
6077
{
6178
if (str == null) return null;

src/Nest/QueryDsl/Abstractions/Container/QueryContainerDescriptor.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ public QueryContainer Term(Func<TermQueryDescriptor<T>, ITermQuery> selector) =>
348348
/// over many terms. In order to prevent extremely slow wildcard queries, a wildcard term should
349349
/// not start with one of the wildcards * or ?. The wildcard query maps to Lucene WildcardQuery.
350350
/// </summary>
351-
public QueryContainer Wildcard(Expression<Func<T, object>> field, string value, double? boost = null, RewriteMultiTerm? rewrite = null, string name = null) =>
351+
public QueryContainer Wildcard(Expression<Func<T, object>> field, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null) =>
352352
this.Wildcard(t => t.Field(field).Value(value).Rewrite(rewrite).Boost(boost).Name(name));
353353

354354
/// <summary>
@@ -358,7 +358,7 @@ public QueryContainer Wildcard(Expression<Func<T, object>> field, string value,
358358
/// In order to prevent extremely slow wildcard queries, a wildcard term should not start with
359359
/// one of the wildcards * or ?. The wildcard query maps to Lucene WildcardQuery.
360360
/// </summary>
361-
public QueryContainer Wildcard(Field field, string value, double? boost = null, RewriteMultiTerm? rewrite = null, string name = null) =>
361+
public QueryContainer Wildcard(Field field, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null) =>
362362
this.Wildcard(t => t.Field(field).Value(value).Rewrite(rewrite).Boost(boost).Name(name));
363363

364364
/// <summary>
@@ -375,14 +375,14 @@ public QueryContainer Wildcard(Func<WildcardQueryDescriptor<T>, IWildcardQuery>
375375
/// Matches documents that have fields containing terms with a specified prefix (not analyzed).
376376
/// The prefix query maps to Lucene PrefixQuery.
377377
/// </summary>
378-
public QueryContainer Prefix(Expression<Func<T, object>> field, string value, double? boost = null, RewriteMultiTerm? rewrite = null, string name = null) =>
378+
public QueryContainer Prefix(Expression<Func<T, object>> field, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null) =>
379379
this.Prefix(t => t.Field(field).Value(value).Boost(boost).Rewrite(rewrite).Name(name));
380380

381381
/// <summary>
382382
/// Matches documents that have fields containing terms with a specified prefix (not analyzed).
383383
/// The prefix query maps to Lucene PrefixQuery.
384384
/// </summary>
385-
public QueryContainer Prefix(Field field, string value, double? boost = null, RewriteMultiTerm? rewrite = null, string name = null) =>
385+
public QueryContainer Prefix(Field field, string value, double? boost = null, MultiTermQueryRewrite rewrite = null, string name = null) =>
386386
this.Prefix(t => t.Field(field).Value(value).Boost(boost).Rewrite(rewrite).Name(name));
387387

388388
/// <summary>

0 commit comments

Comments
 (0)