特征函数项
特征函数可以用到排序表达式中(大部分仅支持精排表达式),可以通过各种语法及语句的组合得到强大的排序功能。
其中特征函数参数出现的文档字段需根据对应函数文档提示,创建为索引或属性.
gauss_decay,使用高斯函数,根据数值和给定的起始点之间的距离,计算其衰减程度
1.详细用法:
gauss_decay(origin, value, scale, decay, offset)
2.参数:
origin:衰减函数的起始点,支持double类型的浮点数
value:需要计算衰减程度的值,支持double类型的浮点数,该值可以来自用户字段或者其他表达式
scale:衰减程度,支持double类型的浮点数
decay:当距离为scale时的衰减程度,支持double类型的浮点数,可选,默认值为0.000001
offset:当距离大于offset时才开始计算衰减程度,支持double类型的浮点数,可选,默认值为0
3.返回值:
返回值为double,区间为[0, 1]
4.适用场景:
场景1:
查找距离用户最近的酒店,按照距离由近到远排序,并且认为距离小于100m的酒店不用做区分, longitude_in_doc和latitude_in_doc为酒店的经纬度,longtitude_in_query和latitude_in_query为用户的经纬度
gauss_decay(0, distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query), 5, 0.000001, 0.1)
场景2:
查找2000元左右的手机,并且如果价格小于1500或者大于2500时,文档算分为0,文档中手机价格为price,kvpairs=price_key:2000,公式如下:
gauss_decay(kvpairs_value(price_key, FLOAT), price, 500)
5.注意事项:
函数参数需创建为属性
如果scale小于或者等于0,衰减函数默认返回0
如果decay大于或者等于1,衰减函数默认返回1
如果decay小于或者等于0,默认将decay设置为0.000001
如果offset小于0,默认将offset设置为0