兼容特征及功能函数项
兼有功能及特征函数的功能,可以同时在filter、sort及formula表达式中使用。
其中函数参数出现的文档字段需根据对应函数文档提示,创建为索引或属性.
distance:获取两个点之间的球面距离,一般用于LBS的距离计算。
1.详细用法:
distance(longitude_a, latitude_a, longtitude_b, latitude_b, output_name)
2.参数:
3.返回值float。
实际距离值,单位为千米。
4.适用场景
场景1:查找距离用户(120.34256,30.56982)10公里内的外婆家(lon,lat为文档中记录商家的经纬度值,需要配置为属性字段),并按照距离由近及远排序;
#sort子句中的写法
query=default:’外婆家’&&
filter=distance(lon,lat,”120.34256”,”30.56982”)<10&&
sort=+distance(lon,lat,"120.34256","30.56982")
#业务排序写法
其中距离排序也可以采用如下方式实现,用户坐标通过kvpairs传递。
kvpairs=longtitude_in_query:120.34256, latitude_in_query:30.56982
精排表达式为:distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query, distance_value)
5.注意事项:
函数参数依赖字段需创建为属性
outputname参数仅限于精排表达式中使用,filter及sort子句不支持。设置outputname参数后,实际的距离值将展示到variableValue节点中,该节点只能在返回格式为xml或者fulljson中(config子句中format参数可以设置)才能得到。