相容特徵及功能函數項
兼有功能及特徵函數的功能,可以同時在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參數可以設定)才能得到。