package esquery // BoostingQuery represents a compound query of type "boosting", as described in // https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html type BoostingQuery struct { // Pos is the positive part of the query. Pos Mappable // Neg is the negative part of the query. Neg Mappable // NegBoost is the negative boost value. NegBoost float32 } // Boosting creates a new compound query of type "boosting". func Boosting() *BoostingQuery { return &BoostingQuery{} } // Positive sets the positive part of the boosting query. func (q *BoostingQuery) Positive(p Mappable) *BoostingQuery { q.Pos = p return q } // Negative sets the negative part of the boosting query. func (q *BoostingQuery) Negative(p Mappable) *BoostingQuery { q.Neg = p return q } // NegativeBoost sets the negative boost value. func (q *BoostingQuery) NegativeBoost(b float32) *BoostingQuery { q.NegBoost = b return q } // Map returns a map representation of the boosting query, thus implementing // the Mappable interface. func (q *BoostingQuery) Map() map[string]interface{} { return map[string]interface{}{ "boosting": map[string]interface{}{ "positive": q.Pos.Map(), "negative": q.Neg.Map(), "negative_boost": q.NegBoost, }, } }