public class DecayFunction extends Object
在FunctionsScoreQuery中使用,该函数用于根据field与目标值的相对距离打分,可以对Geo-point、Date、Long和Double类型field打分。与之相对应的,decayParam分为
DecayFuncGeoParam、DecayFuncDateParam和DecayFuncNumericParam三种类型的参数设置,请根据field类型选择对应DecayParam。
param中的origin、scale和offset与DecayFunction中的decay共同用于计算分数,其中origin是打分的参照,scale和decay设置分数衰减标准 (与origin相对距离为scale的文档获得的分值为decay,与origin相距距离小于offset的文档同样会获得最高分1分)。
打分使用的函数包括EXP、GAUSS和LINEAR三种,由DecayFunction.MathFunction控制,对于数组类型的field,使用MultiValueMode设置打分模式,MIN表示选取数组中最小值作为打分依据,以此类推……
tips:DecayFunction对某个field进行打分时,如果某个文档没有对应的field,则该文档会获得1分(最高分),为了避免受到干扰,
建议在FunctionsScoreQuery的query中设置ExistsQuery类型Query,屏蔽影响。
| Modifier and Type | Class and Description |
|---|---|
static class |
DecayFunction.Builder |
static class |
DecayFunction.MathFunction |
| Constructor and Description |
|---|
DecayFunction() |
DecayFunction(String fieldName,
DecayParam decayParam,
DecayFunction.MathFunction mathFunction,
Double decay,
MultiValueMode multiValueMode) |
| Modifier and Type | Method and Description |
|---|---|
Double |
getDecay() |
DecayParam |
getDecayParam() |
String |
getFieldName() |
DecayFunction.MathFunction |
getMathFunction() |
MultiValueMode |
getMultiValueMode() |
static DecayFunction.Builder |
newBuilder() |
void |
setDecay(Double decay) |
void |
setDecayParam(DecayParam decayParam) |
void |
setFieldName(String fieldName) |
void |
setMathFunction(DecayFunction.MathFunction mathFunction) |
void |
setMultiValueMode(MultiValueMode multiValueMode) |
public DecayFunction()
public DecayFunction(String fieldName, DecayParam decayParam, DecayFunction.MathFunction mathFunction, Double decay, MultiValueMode multiValueMode)
public String getFieldName()
public void setFieldName(String fieldName)
public DecayParam getDecayParam()
public void setDecayParam(DecayParam decayParam)
public DecayFunction.MathFunction getMathFunction()
public void setMathFunction(DecayFunction.MathFunction mathFunction)
public Double getDecay()
public void setDecay(Double decay)
public MultiValueMode getMultiValueMode()
public void setMultiValueMode(MultiValueMode multiValueMode)
public static DecayFunction.Builder newBuilder()
Copyright © 2024. All Rights Reserved.