42 lines
948 B
Go
42 lines
948 B
Go
|
package esquery
|
||
|
|
||
|
/*******************************************************************************
|
||
|
* Boosting Queries
|
||
|
* https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-boosting-query.html
|
||
|
******************************************************************************/
|
||
|
|
||
|
type BoostingQuery struct {
|
||
|
Pos Mappable
|
||
|
Neg Mappable
|
||
|
NegBoost float32
|
||
|
}
|
||
|
|
||
|
func Boosting() *BoostingQuery {
|
||
|
return &BoostingQuery{}
|
||
|
}
|
||
|
|
||
|
func (q *BoostingQuery) Positive(p Mappable) *BoostingQuery {
|
||
|
q.Pos = p
|
||
|
return q
|
||
|
}
|
||
|
|
||
|
func (q *BoostingQuery) Negative(p Mappable) *BoostingQuery {
|
||
|
q.Neg = p
|
||
|
return q
|
||
|
}
|
||
|
|
||
|
func (q *BoostingQuery) NegativeBoost(b float32) *BoostingQuery {
|
||
|
q.NegBoost = b
|
||
|
return q
|
||
|
}
|
||
|
|
||
|
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,
|
||
|
},
|
||
|
}
|
||
|
}
|