Skip to content

Commit 805cfdc

Browse files
committed
WIP: Down to 71 compiler errors
1 parent 7d9a25e commit 805cfdc

File tree

4 files changed

+72
-46
lines changed

4 files changed

+72
-46
lines changed

tests/Foundatio.Parsers.ElasticQueries.Tests/AggregationParserTests.cs

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ await Client.IndexManyAsync([
136136
_logger.LogInformation("Actual: {Request}", actualRequest);
137137

138138
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Aggregations(a => a
139-
.Min("min_heynow", c => c.Field("field4").Meta(m => m.Add("@field_type", "long")))));
139+
.Add("min_heynow", a1 => a1.Min(c => c.Field(cf => cf.Field4)).Meta(m => m.Add("@field_type", "long")))));
140140
string expectedRequest = expectedResponse.GetRequest();
141141
_logger.LogInformation("Expected: {Request}", expectedRequest);
142142

@@ -265,21 +265,21 @@ await Client.IndexManyAsync([
265265
_logger.LogInformation("Actual: {Request}", actualRequest);
266266

267267
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Aggregations(a => a
268-
.Add("geogrid_field3", a1 => a1.GeohashGrid(h => h.Field("field3").Precision(new GeohashPrecision(1)))
268+
.Add("geogrid_field3", a1 => a1.GeohashGrid(h => h.Field(f => f.Field3).Precision(new GeohashPrecision(1)))
269269
.Aggregations(a2 => a2
270270
.Add("avg_lat", a3 => a3.Avg(s => s.Script(ss => ss.Source("doc['field3'].lat"))))
271271
.Add("avg_lon", a3 => a3.Avg(s => s.Script(ss => ss.Source("doc['field3'].lon"))))
272272
))
273273
.Add("terms_field1", a1 => a1.Terms(t => t.Field("field1.keyword")).Meta(m => m.Add("@field_type", "text")))
274-
.Add("histogram_field4", a1 => a1.Histogram(h => h.Field("field4").Interval(50).MinDocCount(0)))
275-
.Add("date_field5", a1 => a1.DateHistogram(d1 => d1.Field("field5").CalendarInterval(CalendarInterval.Day).Format("date_optional_time").MinDocCount(0)))
274+
.Add("histogram_field4", a1 => a1.Histogram(h => h.Field(f => f.Field4).Interval(50).MinDocCount(0)))
275+
.Add("date_field5", a1 => a1.DateHistogram(d1 => d1.Field(f => f.Field5).CalendarInterval(CalendarInterval.Day).Format("date_optional_time").MinDocCount(0)))
276276
.Add("missing_field2", a1 => a1.Missing(t => t.Field("field2.keyword")))
277-
.Add("cardinality_field4", a1 => a1.Cardinality(c => c.Field("field4")))
278-
.Add("percentiles_field4", a1 => a1.Percentiles(c => c.Field("field4").Percents([50, 100])))
279-
.Add("sum_field4", a1 => a1.Sum(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))
280-
.Add("avg_field4", a1 => a1.Avg(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))
281-
.Add("max_field4", a1 => a1.Max(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))
282-
.Add("min_field4", a1 => a1.Min(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))));
277+
.Add("cardinality_field4", a1 => a1.Cardinality(c => c.Field(f => f.Field4)))
278+
.Add("percentiles_field4", a1 => a1.Percentiles(c => c.Field(f => f.Field4).Percents([50, 100])))
279+
.Add("sum_field4", a1 => a1.Sum(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))
280+
.Add("avg_field4", a1 => a1.Avg(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))
281+
.Add("max_field4", a1 => a1.Max(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))
282+
.Add("min_field4", a1 => a1.Min(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))));
283283
string expectedRequest = expectedResponse.GetRequest();
284284
_logger.LogInformation("Expected: {Request}", expectedRequest);
285285

@@ -362,11 +362,26 @@ public async Task ProcessAggregationsWithAliasesAsync()
362362
.Text("identity", o4 => o4.Fields(f => f.Keyword("keyword", o5 => o5.IgnoreAbove(256))))))))));
363363

364364
await Client.IndexManyAsync([
365-
new MyType { Field1 = "value1", Field4 = 1, Field3 = "51.5032520,-0.1278990", Field5 = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(5)), Field2 = "field2" }
365+
new MyType
366+
{
367+
Field1 = "value1",
368+
Field4 = 1,
369+
Field3 = "51.5032520,-0.1278990",
370+
Field5 = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(5)),
371+
Field2 = "field2"
372+
}
366373
], index);
367374
await Client.Indices.RefreshAsync(index);
368375

369-
var aliasMap = new FieldMap { { "user", "[email protected]" }, { "alias1", "field1" }, { "alias2", "field2" }, { "alias3", "field3" }, { "alias4", "field4" }, { "alias5", "field5" } };
376+
var aliasMap = new FieldMap
377+
{
378+
{ "user", "[email protected]" },
379+
{ "alias1", "field1" },
380+
{ "alias2", "field2" },
381+
{ "alias3", "field3" },
382+
{ "alias4", "field4" },
383+
{ "alias5", "field5" }
384+
};
370385
var processor = new ElasticQueryParser(c => c.SetLoggerFactory(Log).UseMappings(Client, index).UseGeo(_ => "51.5032520,-0.1278990").UseFieldMap(aliasMap));
371386
var aggregations = await processor.BuildAggregationsAsync("min:alias4 max:alias4 avg:alias4 sum:alias4 percentiles:alias4 cardinality:user missing:alias2 date:alias5 histogram:alias4 geogrid:alias3 terms:alias1");
372387

@@ -375,21 +390,21 @@ await Client.IndexManyAsync([
375390
_logger.LogInformation("Actual: {Request}", actualRequest);
376391

377392
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Aggregations(a => a
378-
.Add("geogrid_alias3", a1 => a1.GeohashGrid(h => h.Field("field3").Precision(new GeohashPrecision(1)))
393+
.Add("geogrid_alias3", a1 => a1.GeohashGrid(h => h.Field(f => f.Field3).Precision(new GeohashPrecision(1)))
379394
.Aggregations(a2 => a2
380395
.Add("avg_lat", a3 => a3.Avg(s => s.Script(ss => ss.Source("doc['field3'].lat"))))
381396
.Add("avg_lon", a3 => a3.Avg(s => s.Script(ss => ss.Source("doc['field3'].lon"))))
382397
))
383398
.Add("terms_alias1", a1 => a1.Terms(t => t.Field("field1.keyword")).Meta(m => m.Add("@field_type", "text")))
384-
.Add("histogram_alias4", a1 => a1.Histogram(h => h.Field("field4").Interval(50).MinDocCount(0)))
385-
.Add("date_alias5", a1 => a1.DateHistogram(d1 => d1.Field("field5").CalendarInterval(CalendarInterval.Day).Format("date_optional_time").MinDocCount(0)))
399+
.Add("histogram_alias4", a1 => a1.Histogram(h => h.Field(f => f.Field4).Interval(50).MinDocCount(0)))
400+
.Add("date_alias5", a1 => a1.DateHistogram(d1 => d1.Field(f => f.Field5).CalendarInterval(CalendarInterval.Day).Format("date_optional_time").MinDocCount(0)))
386401
.Add("missing_alias2", a1 => a1.Missing(t => t.Field("field2.keyword")))
387402
.Add("cardinality_user", a1 => a1.Cardinality(c => c.Field("[email protected]")))
388-
.Add("percentiles_alias4", a1 => a1.Percentiles(c => c.Field("field4")))
389-
.Add("sum_alias4", a1 => a1.Sum(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))
390-
.Add("avg_alias4", a1 => a1.Avg(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))
391-
.Add("max_alias4", a1 => a1.Max(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))
392-
.Add("min_alias4", a1 => a1.Min(c => c.Field("field4")).Meta(m => m.Add("@field_type", "long")))));
403+
.Add("percentiles_alias4", a1 => a1.Percentiles(c => c.Field(f => f.Field4)))
404+
.Add("sum_alias4", a1 => a1.Sum(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))
405+
.Add("avg_alias4", a1 => a1.Avg(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))
406+
.Add("max_alias4", a1 => a1.Max(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))
407+
.Add("min_alias4", a1 => a1.Min(c => c.Field(f => f.Field4)).Meta(m => m.Add("@field_type", "long")))));
393408

394409
string expectedRequest = expectedResponse.GetRequest();
395410
_logger.LogInformation("Expected: {Request}", expectedRequest);
@@ -420,8 +435,8 @@ public async Task ProcessTermAggregations()
420435
.MinDocCount(1)
421436
.Include(new TermsInclude(["otherinclude", "myinclude"]))
422437
.Exclude(new TermsExclude(["otherexclude", "myexclude"]))
423-
.Missing("mymissing")
424-
.Meta(m => m.Add("@field_type", "keyword"))))));
438+
.Missing("mymissing"))
439+
.Meta(m => m.Add("@field_type", "keyword")))));
425440

426441
string expectedRequest = expectedResponse.GetRequest();
427442
_logger.LogInformation("Expected: {Request}", expectedRequest);
@@ -501,7 +516,7 @@ public async Task ProcessSortedTermAggregations()
501516
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Aggregations(a => a
502517
.Add("terms_field1", a1 => a1
503518
.Terms(t => t.Field("field1.keyword").Order(new List<KeyValuePair<Field, SortOrder>> { new ("cardinality_field4", SortOrder.Desc) }))
504-
.Aggregations(a2 => a2.Add("cardinality_field4", a3 => a3.Cardinality(c => c.Field("field4"))))
519+
.Aggregations(a2 => a2.Add("cardinality_field4", a3 => a3.Cardinality(c => c.Field(f => f.Field4))))
505520
.Meta(m => m.Add("@field_type", "keyword")))));
506521
string expectedRequest = expectedResponse.GetRequest();
507522
_logger.LogInformation("Expected: {Request}", expectedRequest);
@@ -528,16 +543,16 @@ public async Task ProcessDateHistogramAggregations()
528543

529544
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Aggregations(a => a
530545
.Add("date_field5", a1 => a1.DateHistogram(d1 => d1
531-
.Field("field5")
546+
.Field(f => f.Field5)
532547
.CalendarInterval(CalendarInterval.Day)
533548
.Format("date_optional_time")
534549
.MinDocCount(0)
535550
.TimeZone("+01:00")
536551
.Missing(DateTime.MinValue))
537552
.Meta(m => m.Add("@timezone", "1h"))
538553
.Aggregations(a2 => a2
539-
.Add("min_field5", a3 => a3.Min(c => c.Field("field5")).Meta(m => m.Add("@field_type", "date").Add("@timezone", "1h")))
540-
.Add("max_field5", a3 => a3.Max(c => c.Field("field5")).Meta(m => m.Add("@field_type", "date").Add("@timezone", "1h")))))));
554+
.Add("min_field5", a3 => a3.Min(c => c.Field(f => f.Field5)).Meta(m => m.Add("@field_type", "date").Add("@timezone", "1h")))
555+
.Add("max_field5", a3 => a3.Max(c => c.Field(f => f.Field5)).Meta(m => m.Add("@field_type", "date").Add("@timezone", "1h")))))));
541556

542557
string expectedRequest = expectedResponse.GetRequest();
543558
_logger.LogInformation("Expected: {Request}", expectedRequest);
@@ -563,11 +578,11 @@ public async Task CanSpecifyDefaultValuesAggregations()
563578
_logger.LogInformation("Actual: {Request}", actualRequest);
564579

565580
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Aggregations(a => a
566-
.Add("sum_field4", a1 => a1.Sum(c => c.Field("field4").Missing(0)).Meta(m => m.Add("@field_type", "integer")))
567-
.Add("cardinality_field4", a1 => a1.Cardinality(c => c.Field("field4").Missing(0)))
568-
.Add("avg_field4", a1 => a1.Avg(c => c.Field("field4").Missing(0)).Meta(m => m.Add("@field_type", "integer")))
569-
.Add("max_field4", a1 => a1.Max(c => c.Field("field4").Missing(0)).Meta(m => m.Add("@field_type", "integer")))
570-
.Add("min_field4", a1 => a1.Min(c => c.Field("field4").Missing(0)).Meta(m => m.Add("@field_type", "integer")))));
581+
.Add("sum_field4", a1 => a1.Sum(c => c.Field(f => f.Field4).Missing(0)).Meta(m => m.Add("@field_type", "integer")))
582+
.Add("cardinality_field4", a1 => a1.Cardinality(c => c.Field(f => f.Field4).Missing(0)))
583+
.Add("avg_field4", a1 => a1.Avg(c => c.Field(f => f.Field4).Missing(0)).Meta(m => m.Add("@field_type", "integer")))
584+
.Add("max_field4", a1 => a1.Max(c => c.Field(f => f.Field4).Missing(0)).Meta(m => m.Add("@field_type", "integer")))
585+
.Add("min_field4", a1 => a1.Min(c => c.Field(f => f.Field4).Missing(0)).Meta(m => m.Add("@field_type", "integer")))));
571586

572587
string expectedRequest = expectedResponse.GetRequest();
573588
_logger.LogInformation("Expected: {Request}", expectedRequest);

tests/Foundatio.Parsers.ElasticQueries.Tests/CustomVisitorTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public async Task CanResolveSimpleCustomFilter()
3333
.AddVisitor(new CustomFilterVisitor()));
3434

3535
var result = await processor.BuildQueryAsync("@custom:(one)");
36-
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(_ => result));
36+
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(result));
3737
string actualRequest = actualResponse.GetRequest();
3838
_logger.LogInformation("Actual: {Request}", actualRequest);
3939

@@ -58,7 +58,7 @@ public async Task CanResolveCustomFilterContainingIncludes()
5858
.AddVisitor(new CustomFilterVisitor()));
5959

6060
var result = await processor.BuildQueryAsync("@custom:(one @include:3)");
61-
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(_ => result));
61+
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(result));
6262
string actualRequest = actualResponse.GetRequest();
6363
_logger.LogInformation("Actual: {Request}", actualRequest);
6464

@@ -83,7 +83,7 @@ public async Task CanResolveIncludeToCustomFilterContainingIgnoredInclude()
8383
.AddVisitor(new CustomFilterVisitor(), 1));
8484

8585
var result = await processor.BuildQueryAsync("@include:test");
86-
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(_ => result));
86+
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(result));
8787
string actualRequest = actualResponse.GetRequest();
8888
_logger.LogInformation("Actual: {Request}", actualRequest);
8989

@@ -130,7 +130,7 @@ public async Task CanResolveMultipleCustomFilters()
130130
.AddVisitor(new CustomFilterVisitor()));
131131

132132
var result = await processor.BuildQueryAsync("@custom:(one) OR (field1:Test @custom:(two))");
133-
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(_ => result));
133+
var actualResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(result));
134134
string actualRequest = actualResponse.GetRequest();
135135
_logger.LogInformation("Actual: {Request}", actualRequest);
136136

tests/Foundatio.Parsers.ElasticQueries.Tests/ElasticMappingResolverTests.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@ private TypeMappingDescriptor<MyNestedType> MapMyNestedType(TypeMappingDescripto
2121
{
2222
return m
2323
.Dynamic(DynamicMapping.True)
24-
.DynamicTemplates(t => t.DynamicTemplate("idx_text", t1 => t1.Match("text*").Mapping(m1 => m1.Text(mp => mp.AddKeywordAndSortFields()))))
24+
.DynamicTemplates(new List<IDictionary<string, DynamicTemplate>>
25+
{
26+
new Dictionary<string, DynamicTemplate>
27+
{
28+
{ "idx_text", DynamicTemplate.Mapping(new TextProperty().AddKeywordAndSortFields()).Match("text*") }
29+
}
30+
})
2531
.Properties(p => p
2632
.Text(p1 => p1.Field1, o => o.AddKeywordAndSortFields())
2733
.Text(p1 => p1.Field4, o => o.AddKeywordAndSortFields())

tests/Foundatio.Parsers.ElasticQueries.Tests/ElasticQueryParserTests.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public async Task ShouldHandleMultipleTermsForAnalyzedFields()
182182
|| f.Match(m => m.Field(mf => mf.Field1).Query("abc"))
183183
|| f.Match(m => m.Field(mf => mf.Field1).Query("def"))
184184
|| f.Match(m => m.Field(mf => mf.Field1).Query("ghi"))
185-
|| f.Term(m => m.Field(tf => tf.Field2).Value("value2")) || f.Term(m => m.Field(mf => mf.Field2), "jhk")));
185+
|| f.Term(m => m.Field(tf => tf.Field2).Value("value2")) || f.Term(m => m.Field(mf => mf.Field2).Value("jhk"))));
186186

187187
string expectedRequest = expectedResponse.GetRequest();
188188
_logger.LogInformation("Expected: {Request}", expectedRequest);
@@ -305,8 +305,7 @@ await Client.IndexManyAsync([
305305
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index)
306306
.Query(q => q
307307
.Bool(b => b
308-
.Filter(f => f
309-
.QueryString(m => m.Query("one\\/two*").Fields(f1 => f1.Field(f2 => f2.Field1)).AllowLeadingWildcard(false).AnalyzeWildcard())))));
308+
.Filter(f => f.QueryString(m => m.Query("one\\/two*").Fields(Fields.FromExpression((MyType f1) => f1.Field1)).AllowLeadingWildcard(false).AnalyzeWildcard())))));
310309
string expectedRequest = expectedResponse.GetRequest(true);
311310
_logger.LogInformation("Expected: {Request}", expectedRequest);
312311

@@ -609,7 +608,7 @@ await Client.IndexManyAsync([
609608
expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(q => q.QueryString(m => m
610609
.AllowLeadingWildcard(false)
611610
.AnalyzeWildcard(true)
612-
.Fields(f => f.Field(f1 => f1.Field3))
611+
.Fields(Fields.FromExpression((MyType f1) => f1.Field3))
613612
.Query("hey*")
614613
)));
615614
expectedRequest = expectedResponse.GetRequest();
@@ -965,9 +964,7 @@ await Client.IndexManyAsync([
965964
public async Task CanGenerateMatchQuery()
966965
{
967966
string index = await CreateRandomIndexAsync<MyType>(m => m.Properties(p => p
968-
.Text(e => e.Field1)
969-
.Fields(f1 => f1
970-
.Keyword(k => k.Name("keyword").IgnoreAbove(256)))));
967+
.Text(e => e.Field1, o => o.Fields(f1 => f1.Keyword("keyword")).IgnoreAbove(256))));
971968

972969
var processor = new ElasticQueryParser(c => c.SetLoggerFactory(Log).UseMappings(Client, index));
973970
var result = await processor.BuildQueryAsync("field1:test", new ElasticQueryVisitorContext().UseScoring());
@@ -1242,7 +1239,11 @@ await processor.BuildQueryAsync("field3:[51.5032520,-0.1278990 TO 51.5032520,-0.
12421239

12431240
var expectedResponse = await Client.SearchAsync<MyType>(d => d.Index(index).Query(q =>
12441241
q.GeoBoundingBox(
1245-
m => m.Field(p => p.Field3).BoundingBox("51.5032520,-0.1278990", "51.5032520,-0.1278990"))));
1242+
m => m.Field(p => p.Field3).BoundingBox(new TopLeftBottomRightGeoBounds
1243+
{
1244+
TopLeft = "51.5032520,-0.1278990",
1245+
BottomRight = "51.5032520,-0.1278990"
1246+
}))));
12461247
string expectedRequest = expectedResponse.GetRequest();
12471248
_logger.LogInformation("Expected: {Request}", expectedRequest);
12481249

@@ -1396,7 +1397,7 @@ await Client.IndexManyAsync([
13961397
.Query(q => q.Bool(b => b.Filter(f => f
13971398
.Match(mf => mf.Field("nested.data.spaced field").Query("hey")))))
13981399
.Aggregations(a => a
1399-
.Add("terms_nested.data.spaced field.keyword", ad => ad.Terms(t => t.Field("nested.data.spaced field.keyword").Meta(m2 => m2.Add("@field_type", "text"))))));
1400+
.Add("terms_nested.data.spaced field.keyword", ad => ad.Terms(t => t.Field("nested.data.spaced field.keyword")).Meta(m2 => m2.Add("@field_type", "text")))));
14001401
string expectedRequest = expectedResponse.GetRequest();
14011402
_logger.LogInformation("Expected: {Request}", expectedRequest);
14021403
Assert.Equal(expectedRequest, actualRequest);
@@ -1460,7 +1461,11 @@ public async Task GeoRangeQueryProcessor()
14601461
.Field("field1.keyword", so => so.Order(SortOrder.Desc).UnmappedType(FieldType.Keyword))
14611462
).Query(q => q
14621463
.GeoBoundingBox(m => m
1463-
.Field(p => p.Field3).BoundingBox("51.5032520,-0.1278990", "51.5032520,-0.1278990"))
1464+
.Field(p => p.Field3).BoundingBox(new TopLeftBottomRightGeoBounds
1465+
{
1466+
TopLeft = "51.5032520,-0.1278990",
1467+
BottomRight = "51.5032520,-0.1278990"
1468+
}))
14641469
|| q.Match(y => y.Field(e => e.Field1).Query("value1"))
14651470
|| q.Range(qr => qr.TermRange(m => m.Field(g => g.Field2).Gte("1").Lte("4")))
14661471
|| !q.GeoDistance(m => m.Field(p => p.Field3).Location("51.5032520,-0.1278990").Distance("75mi"))));

0 commit comments

Comments
 (0)