func (q *DateRangeQuery) parseEndpoints() (*float64, *float64, error) { min := math.Inf(-1) max := math.Inf(1) if !q.Start.IsZero() { min = numeric.Int64ToFloat64(q.Start.UnixNano()) } if !q.End.IsZero() { max = numeric.Int64ToFloat64(q.End.UnixNano()) } return &min, &max, nil }
func (fb *NumericFacetBuilder) Update(ft index.FieldTerms) { terms, ok := ft[fb.field] if ok { for _, term := range terms { // only consider the values which are shifted 0 prefixCoded := numeric.PrefixCoded(term) shift, err := prefixCoded.Shift() if err == nil && shift == 0 { i64, err := prefixCoded.Int64() if err == nil { f64 := numeric.Int64ToFloat64(i64) // look at each of the ranges for a match for rangeName, r := range fb.ranges { if (r.min == nil || f64 >= *r.min) && (r.max == nil || f64 < *r.max) { existingCount, existed := fb.termsCount[rangeName] if existed { fb.termsCount[rangeName] = existingCount + 1 } else { fb.termsCount[rangeName] = 1 } fb.total++ } } } } } } else { fb.missing++ } }
func (n *NumericField) Number() (float64, error) { i64, err := n.value.Int64() if err != nil { return 0.0, err } return numeric.Int64ToFloat64(i64), nil }