gauss_decay

特征函数项

特征函数可以用到排序表达式中(大部分仅支持精排表达式),可以通过各种语法及语句的组合得到强大的排序功能。

其中特征函数参数出现的文档字段需根据对应函数文档提示,创建为索引或属性.

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