public static ICollection <IFieldSort> GetResolvedFields(this ElasticMappingResolver resolver, ICollection <IFieldSort> sorts) { if (sorts.Count == 0) { return(sorts); } return(sorts.Select(sort => ResolveFieldSort(resolver, sort)).ToList()); }
public static ICollection <Field> GetResolvedFields(this ElasticMappingResolver resolver, ICollection <Field> fields) { if (fields.Count == 0) { return(fields); } return(fields.Select(field => ResolveFieldName(resolver, field)).ToList()); }
public static Field ResolveFieldName(this ElasticMappingResolver resolver, Field field) { if (field.Name == null) { return(field); } return(new Field(resolver.GetResolvedField(field.Name), field.Boost, field.Format)); }
public static T SetMappingResolver <T>(this T context, ElasticMappingResolver mappingResolver) where T : IQueryVisitorContext { if (!(context is IElasticQueryVisitorContext elasticContext)) { throw new ArgumentException("Context must be of type IElasticQueryVisitorContext", nameof(context)); } elasticContext.MappingResolver = mappingResolver ?? ElasticMappingResolver.NullInstance; return(context); }
public static IFieldSort ResolveFieldSort(this ElasticMappingResolver resolver, IFieldSort sort) { return(new FieldSort { Field = resolver.GetSortFieldName(sort.SortKey), IgnoreUnmappedFields = sort.IgnoreUnmappedFields, Missing = sort.Missing, Mode = sort.Mode, Nested = sort.Nested, NumericType = sort.NumericType, Order = sort.Order, UnmappedType = sort.UnmappedType }); }
public void CanResolveProperties() { var client = GetClient(); var index = CreateRandomIndex <MyNestedType>(client, MapMyNestedType); client.IndexMany(new[] { new MyNestedType { Field1 = "value1", Field2 = "value2", Nested = new MyType[] { new MyType { Field1 = "banana", Data = { { "number-0001", 23 }, { "text-0001", "Hey" } } } } }, new MyNestedType { Field1 = "value2", Field2 = "value2" }, new MyNestedType { Field1 = "value1", Field2 = "value4" } }, index); client.Indices.Refresh(index); var resolver = ElasticMappingResolver.Create <MyNestedType>(MapMyNestedType, client, _logger); var dynamicTextAggregation = resolver.GetAggregationsFieldName("nested.data.text-0001"); Assert.Equal("nested.data.text-0001.keyword", dynamicTextAggregation); var field1Property = resolver.GetMappingProperty("Field1"); Assert.IsType <TextProperty>(field1Property); var field1 = resolver.GetResolvedField("FielD1"); Assert.Equal("field1", field1); var field4Property = resolver.GetMappingProperty("Field4"); Assert.IsType <TextProperty>(field4Property); var field4ReflectionProperty = resolver.GetMappingProperty(new Field(typeof(MyNestedType).GetProperty("Field4"))); Assert.IsType <TextProperty>(field4ReflectionProperty); var field4ExpressionProperty = resolver.GetMappingProperty(new Field(GetObjectPath(p => p.Field4))); Assert.IsType <TextProperty>(field4ExpressionProperty); var field4AliasMapping = resolver.GetMapping("Field4Alias", true); Assert.IsType <TextProperty>(field4AliasMapping.Property); Assert.Same(field4Property, field4AliasMapping.Property); var field4sort = resolver.GetSortFieldName("Field4Alias"); Assert.Equal("field4.sort", field4sort); var field4aggs = resolver.GetAggregationsFieldName("Field4Alias"); Assert.Equal("field4.keyword", field4aggs); var nestedIdProperty = resolver.GetMappingProperty("Nested.Id"); Assert.IsType <TextProperty>(nestedIdProperty); var nestedId = resolver.GetResolvedField("Nested.Id"); Assert.Equal("nested.id", nestedId); nestedIdProperty = resolver.GetMappingProperty("nested.id"); Assert.IsType <TextProperty>(nestedIdProperty); var nestedField1Property = resolver.GetMappingProperty("Nested.Field1"); Assert.IsType <TextProperty>(nestedField1Property); nestedField1Property = resolver.GetMappingProperty("nEsted.fieLD1"); Assert.IsType <TextProperty>(nestedField1Property); var nestedField2Property = resolver.GetMappingProperty("Nested.Field4"); Assert.IsType <NumberProperty>(nestedField2Property); var nestedField5Property = resolver.GetMappingProperty("Nested.Field5"); Assert.IsType <DateProperty>(nestedField5Property); var nestedDataProperty = resolver.GetMappingProperty("Nested.Data"); Assert.IsType <ObjectProperty>(nestedDataProperty); }
protected override ElasticMappingResolver CreateMappingResolver() { return(ElasticMappingResolver.Create(Configuration.Client, VersionedName, _logger)); }
protected override ElasticMappingResolver CreateMappingResolver() { return(ElasticMappingResolver.Create <T>(ConfigureIndexMapping, Configuration.Client, Name, _logger)); }
protected virtual ElasticMappingResolver CreateMappingResolver() { return(ElasticMappingResolver.Create(Configuration.Client, Name, _logger)); }