public override void Visit(TermRangeNode node, IQueryVisitorContext context) { var validationInfo = context.GetValidationInfo(); string field = null; if (!String.IsNullOrEmpty(node.Field)) { field = String.Equals(validationInfo.QueryType, QueryType.Query) ? node.GetFullName() : node.Field; if (!field.StartsWith("@")) { validationInfo.ReferencedFields.Add(field); } } else { if (String.Equals(validationInfo.QueryType, QueryType.Aggregation)) { validationInfo.IsValid = false; } var nameParts = node.GetNameParts(); if (nameParts.Length == 0) { validationInfo.ReferencedFields.Add("_all"); } } AddOperation(validationInfo, node.GetOperationType(), field); }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { var validationInfo = context.GetValidationInfo(); AddField(validationInfo, node, context); AddOperation(validationInfo, node.GetOperationType(), node.Field); // aggregations must have a field if (context.QueryType == QueryType.Aggregation && String.IsNullOrEmpty(node.Field)) { validationInfo.IsValid = false; } }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { if (!String.IsNullOrEmpty(node.Field)) { AddField(node); } else { var nameParts = node.GetNameParts(); if (nameParts.Length == 0) { _fields.Add("_all"); } } }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { if (!(context is IElasticQueryVisitorContext elasticContext) || !elasticContext.IsGeoPropertyType(node.Field)) { return; } var box = new BoundingBox { TopLeft = node.Min, BottomRight = node.Max }; var query = new GeoBoundingBoxQuery { BoundingBox = box, Field = node.Field }; node.SetQuery(query); }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { _writer.WriteLine("Term Range: "); _writer.Indent++; _writer.WriteLineIf(node.Field != null, "Field: {0}", node.Field); _writer.WriteLineIf(node.IsNegated.HasValue, "IsNegated: {0}", node.IsNegated); _writer.WriteLineIf(node.Prefix != null, "Prefix: {0}", node.Prefix); _writer.WriteLineIf(node.Operator != null, "Operator: {0}", node.Operator); _writer.WriteLineIf(node.Max != null, "Max: {0}", node.Max); _writer.WriteLineIf(node.Min != null, "Min: {0}", node.Min); _writer.WriteLineIf(node.MinInclusive.HasValue, "MinInclusive: {0}", node.MinInclusive); _writer.WriteLineIf(node.MaxInclusive.HasValue, "MaxInclusive: {0}", node.MaxInclusive); WriteData(node); _writer.Indent--; }
public override Task VisitAsync(TermRangeNode node, IQueryVisitorContext context) { node.Field = GetCustomFieldName(node.Field, new [] { node.Min, node.Max }); return(Task.CompletedTask); }
public static QueryBase GetDefaultQuery(this TermRangeNode node, IQueryVisitorContext context) { if (!(context is IElasticQueryVisitorContext elasticContext)) { throw new ArgumentException("Context must be of type IElasticQueryVisitorContext", nameof(context)); } string field = node.Field; if (elasticContext.MappingResolver.IsDatePropertyType(field)) { var range = new DateRangeQuery { Field = field, TimeZone = node.Boost ?? node.GetTimeZone(elasticContext.DefaultTimeZone) }; if (!String.IsNullOrWhiteSpace(node.UnescapedMin) && node.UnescapedMin != "*") { if (node.MinInclusive.HasValue && !node.MinInclusive.Value) { range.GreaterThan = node.UnescapedMin; } else { range.GreaterThanOrEqualTo = node.UnescapedMin; } } if (!String.IsNullOrWhiteSpace(node.UnescapedMax) && node.UnescapedMax != "*") { if (node.MaxInclusive.HasValue && !node.MaxInclusive.Value) { range.LessThan = node.UnescapedMax; } else { range.LessThanOrEqualTo = node.UnescapedMax; } } return(range); } else { var range = new TermRangeQuery { Field = field }; if (!String.IsNullOrWhiteSpace(node.UnescapedMin) && node.UnescapedMin != "*") { if (node.MinInclusive.HasValue && !node.MinInclusive.Value) { range.GreaterThan = node.UnescapedMin; } else { range.GreaterThanOrEqualTo = node.UnescapedMin; } } if (!String.IsNullOrWhiteSpace(node.UnescapedMax) && node.UnescapedMax != "*") { if (node.MaxInclusive.HasValue && !node.MaxInclusive.Value) { range.LessThan = node.UnescapedMax; } else { range.LessThanOrEqualTo = node.UnescapedMax; } } return(range); } }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { ApplyAlias(node, context); }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { _builder.Append(node); }
public static QueryBase GetDefaultQuery(this TermRangeNode node, IQueryVisitorContext context) { if (!(context is IElasticQueryVisitorContext elasticContext)) { throw new ArgumentException("Context must be of type IElasticQueryVisitorContext", nameof(context)); } string nodeFullName = node.GetFullName(); if (elasticContext.IsDatePropertyType(nodeFullName)) { string timezone = GetString(context, "TimeZone"); var range = new DateRangeQuery { Field = nodeFullName, TimeZone = timezone }; if (!String.IsNullOrWhiteSpace(node.UnescapedMin)) { if (node.MinInclusive.HasValue && !node.MinInclusive.Value) { range.GreaterThan = node.UnescapedMin; } else { range.GreaterThanOrEqualTo = node.UnescapedMin; } } if (!String.IsNullOrWhiteSpace(node.UnescapedMax)) { if (node.MaxInclusive.HasValue && !node.MaxInclusive.Value) { range.LessThan = node.UnescapedMax; } else { range.LessThanOrEqualTo = node.UnescapedMax; } } return(range); } else { var range = new TermRangeQuery { Field = nodeFullName }; if (!String.IsNullOrWhiteSpace(node.UnescapedMin)) { if (node.MinInclusive.HasValue && !node.MinInclusive.Value) { range.GreaterThan = node.UnescapedMin; } else { range.GreaterThanOrEqualTo = node.UnescapedMin; } } if (!String.IsNullOrWhiteSpace(node.UnescapedMax)) { if (node.MaxInclusive.HasValue && !node.MaxInclusive.Value) { range.LessThan = node.UnescapedMax; } else { range.LessThanOrEqualTo = node.UnescapedMax; } } return(range); } }
public void Visit(TermRangeNode node) { node.Field = GetCustomFieldName(node.Field, node.Min, node.Max) ?? node.Field; }
public virtual void Visit(TermRangeNode node, IQueryVisitorContext context) { }
public override void Visit(TermRangeNode node, IQueryVisitorContext context) { AddField(node, context); }
public void Visit(TermRangeNode node, IQueryVisitorContext context) { node.Field = GetCustomFieldName(node.Field, node.Min, node.Max) ?? node.Field; }
public Task VisitAsync(TermRangeNode node, IQueryVisitorContext context) { return(Visitor.VisitAsync(node, context)); }
public virtual Task VisitAsync(TermRangeNode node, IQueryVisitorContext context) { Visit(node, context); return(Task.CompletedTask); }