Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Elasticsearch.Net.Extensions;

namespace Elasticsearch.Net.Serialization
{
Expand All @@ -25,6 +26,10 @@ public static byte[] SerializeToBytes(this IElasticsearchSerializer serializer,
return ms.ToArray();
}
}
public static string SerializeToString(this IElasticsearchSerializer serializer, object data, SerializationFormatting formatting = SerializationFormatting.Indented)
{
return serializer.SerializeToBytes(data, formatting).Utf8String();
}

}

Expand Down
1 change: 1 addition & 0 deletions src/Nest/Aggregations/Aggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ namespace Nest
/// <summary>
/// Describes an aggregation at request time when its being build
/// </summary>
[ExactContractJsonConverter(typeof(AggregationJsonConverter))]
public interface IAggregation
{
}
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/AggregationContainer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ public static implicit operator AggregationContainer(AggregationBase aggregator)
}
}

public class AggregationContainerDescriptor<T> : IAggregationContainer
public class AggregationContainerDescriptor<T> : DescriptorBase<AggregationContainerDescriptor<T>, IAggregationContainer>, IAggregationContainer
where T : class
{
AggregationDictionary IAggregationContainer.Aggregations { get; set; }
Expand Down
6 changes: 6 additions & 0 deletions src/Nest/Aggregations/AggregationJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@

namespace Nest
{
internal class AggregationJsonConverter<TReadAs> : ReadAsTypeJsonConverter<TReadAs>
where TReadAs : class
{

}

internal class AggregationJsonConverter : JsonConverter
{
private static Regex _numeric = new Regex(@"^[\d.]+(\.[\d.]+)?$");
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/BucketAggregationBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ protected BucketAggregationBase(string name) : base(name) { }
}

public abstract class BucketAggregationDescriptorBase<TBucketAggregation, TBucketAggregationInterface, T>
: IBucketAggregation
: IBucketAggregation, IDescriptor
where TBucketAggregation : BucketAggregationDescriptorBase<TBucketAggregation, TBucketAggregationInterface, T>
, TBucketAggregationInterface, IBucketAggregation
where T : class
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<ChildrenAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<ChildrenAggregation>))]
public interface IChildrenAggregation : IBucketAggregation
{
[JsonProperty("type")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<DateHistogramAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<DateHistogramAggregation>))]
public interface IDateHistogramAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<DateRangeAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<DateRangeAggregation>))]
public interface IDateRangeAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
namespace Nest
{
[JsonConverter(typeof(ReadAsTypeJsonConverter<DateRangeExpression>))]
public interface IDateRangeExpression : INestSerializable
public interface IDateRangeExpression
{
[JsonProperty(PropertyName = "from")]
DateMath From { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Filter/FilterAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(FilterAggregationJsonConverter))]
[ContractJsonConverter(typeof(FilterAggregationJsonConverter))]
public interface IFilterAggregation : IBucketAggregation
{
QueryContainer Filter { get; set; }
Expand Down
6 changes: 3 additions & 3 deletions src/Nest/Aggregations/Bucket/Filters/FiltersAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<FiltersAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<FiltersAggregation>))]
public interface IFiltersAggregation : IBucketAggregation
{
[JsonProperty("filters")]
Expand All @@ -31,8 +31,8 @@ public class FiltersAggregationDescriptor<T>
{
Union<INamedFiltersContainer, List<IQueryContainer>> IFiltersAggregation.Filters { get; set; }

public FiltersAggregationDescriptor<T> NamedFilters(Func<NamedFiltersContainerDescriptor<T>, NamedFiltersContainerBase> selector) =>
Assign(a => a.Filters = selector?.Invoke(new NamedFiltersContainerDescriptor<T>()));
public FiltersAggregationDescriptor<T> NamedFilters(Func<NamedFiltersContainerDescriptor<T>, IPromise<INamedFiltersContainer>> selector) =>
Assign(a => a.Filters = new Union<INamedFiltersContainer, List<IQueryContainer>>(selector?.Invoke(new NamedFiltersContainerDescriptor<T>())?.Value));

public FiltersAggregationDescriptor<T> AnonymousFilters(params Func<QueryContainerDescriptor<T>, IQueryContainer>[] selectors) =>
Assign(a => a.Filters = selectors.Select(s=>s?.Invoke(new QueryContainerDescriptor<T>())).ToListOrNullIfEmpty());
Expand Down
41 changes: 41 additions & 0 deletions src/Nest/Aggregations/Bucket/Filters/NamedFiltersContainer.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;

namespace Nest
{
[JsonConverter(typeof(VerbatimDictionaryKeysJsonConverter<NamedFiltersContainer, string, IQueryContainer>))]
public interface INamedFiltersContainer : IIsADictionary<string, IQueryContainer>
{
}

public class NamedFiltersContainer: IsADictionary<string, IQueryContainer>, INamedFiltersContainer
{
public NamedFiltersContainer() : base() { }
public NamedFiltersContainer(IDictionary<string, IQueryContainer> container) : base(container) { }
public NamedFiltersContainer(Dictionary<string, QueryContainer> container)
: base(container.Select(kv => kv).ToDictionary(kv => kv.Key, kv => (IQueryContainer)kv.Value))
{ }

public void Add(string name, IQueryContainer filter) => BackingDictionary.Add(name, filter);
public void Add(string name, QueryContainer filter) => BackingDictionary.Add(name, filter);
}

public class NamedFiltersContainerDescriptor<T> : IsADictionaryDescriptor<NamedFiltersContainerDescriptor<T>, INamedFiltersContainer, string, IQueryContainer>
where T : class
{
public NamedFiltersContainerDescriptor() : base(new NamedFiltersContainer()) { }

public NamedFiltersContainerDescriptor<T> Filter(string name, IQueryContainer filter) => Assign(name, filter);

public NamedFiltersContainerDescriptor<T> Filter(string name, Func<QueryContainerDescriptor<T>, IQueryContainer> selector) =>
Assign(name, selector?.Invoke(new QueryContainerDescriptor<T>()));

public NamedFiltersContainerDescriptor<T> Filter<TOther>(string name, Func<QueryContainerDescriptor<TOther>, IQueryContainer> selector)
where TOther : class =>
Assign(name, selector?.Invoke(new QueryContainerDescriptor<TOther>()));

}

}
66 changes: 0 additions & 66 deletions src/Nest/Aggregations/Bucket/Filters/NamedFiltersContainerBase.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<GeoDistanceAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<GeoDistanceAggregation>))]
public interface IGeoDistanceAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<GeoHashGridAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<GeoHashGridAggregation>))]
public interface IGeoHashGridAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Global/GlobalAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Nest
{

[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<GlobalAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<GlobalAggregation>))]
public interface IGlobalAggregation : IBucketAggregation { }

public class GlobalAggregation : BucketAggregationBase, IGlobalAggregation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<HistogramAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<HistogramAggregation>))]
public interface IHistogramAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/IpRange/IpRange.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<IpRange>))]
public interface IIpRange : INestSerializable
public interface IIpRange
{
[JsonProperty(PropertyName = "from")]
string From { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/IpRange/IpRangeAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<IpRangeAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<IpRangeAggregation>))]
public interface IIpRangeAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Missing/MissingAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<MissingAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<MissingAggregation>))]
public interface IMissingAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Nested/NestedAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<NestedAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<NestedAggregation>))]
public interface INestedAggregation : IBucketAggregation
{
[JsonProperty("path")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Range/RangeAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<RangeAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<RangeAggregation>))]
public interface IRangeAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<ReverseNestedAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<ReverseNestedAggregation>))]
public interface IReverseNestedAggregation : IBucketAggregation
{
[JsonProperty("path")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Sampler/SamplerAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<SamplerAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<SamplerAggregation>))]
public interface ISamplerAggregation : IBucketAggregation
{
[JsonProperty("shard_size")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<ChiSquareHeuristic>))]
public interface IChiSquareHeuristic : INestSerializable
public interface IChiSquareHeuristic
{
[JsonProperty("include_negatives")]
bool? IncludeNegatives { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Nest
{
[JsonObject]
[JsonConverter(typeof(ReadAsTypeJsonConverter<GoogleNormalizedDistanceHeuristic>))]
public interface IGoogleNormalizedDistanceHeuristic : INestSerializable
public interface IGoogleNormalizedDistanceHeuristic
{
[JsonProperty("background_is_superset")]
bool? BackgroundIsSuperSet { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<MutualInformationHeuristic>))]
public interface IMutualInformationHeuristic : INestSerializable
public interface IMutualInformationHeuristic
{
[JsonProperty("include_negatives")]
bool? IncludeNegatives { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Nest
{
[JsonObject]
[JsonConverter(typeof(ReadAsTypeJsonConverter<PercentageScoreHeuristic>))]
public interface IPercentageScoreHeuristic : INestSerializable { }
public interface IPercentageScoreHeuristic { }

public class PercentageScoreHeuristic { }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Nest
{
[JsonObject]
[JsonConverter(typeof(ReadAsTypeJsonConverter<ScriptedHeuristic>))]
public interface IScriptedHeuristic : INestSerializable
public interface IScriptedHeuristic
{
[JsonProperty("script")]
IScript Script { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<SignificantTermsAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<SignificantTermsAggregation>))]
public interface ISignificantTermsAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
2 changes: 1 addition & 1 deletion src/Nest/Aggregations/Bucket/Terms/TermsAggregation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Nest
{
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
[JsonConverter(typeof(ReadAsTypeJsonConverter<TermsAggregation>))]
[ContractJsonConverter(typeof(AggregationJsonConverter<TermsAggregation>))]
public interface ITermsAggregation : IBucketAggregation
{
[JsonProperty("field")]
Expand Down
Loading