全部产品

gauss_decay

更新时间:2017-06-07 13:26:11

特征函数项

特征函数可以用到排序表达式中(大部分仅支持精排表达式),可以通过各种语法及语句的组合得到强大的排序功能。其中特征函数参数出现的文档字段需根据对应函数文档提示,创建为索引或属性.

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