特徵函數項
特徵函數可以用到排序運算式中(大部分僅支援精排運算式),可以通過各種文法及語句的組合得到強大的排序功能。
其中特徵函數參數出現的文檔欄位需根據對應函數文檔提示,建立為索引或屬性.
normalize:歸一化函數,根據不同的算分將數值歸一化至[0, 1]
1.情境概述:
相關性計算過程中,一篇doc的好壞需要從不同的維度衡量。而各個維度分數範圍可能不同,比如網頁點擊數可能是成百上千萬,網頁的文本相關性分數在[0, 1]之間,它們之間沒有可比性。為了在公式中使用這些元素,需要將不同的分數歸一化至同一個範圍區間,而normalize為這種歸一化提供了一種簡便的方法。normlize支援三種歸一化方法:線性函數轉化、對數函數轉化、反正切函數轉化。根據傳入參數的不同,normalize自動選擇不同的歸一化方法。如果只指定value參數,normalize使用反正切函數轉化,如果指定了value和max參數,normalize使用對數函數轉化,如果指定了value、max和min,normalize使用線性函數轉化。
2.詳細用法:
normalize(value, max, min)
3.參數:
value:需要做歸一化的值,支援double類型的浮點數,該值可以來自文檔中的欄位或者其他運算式
max:value的最大值,可選,支援double類型的浮點數
min:value的最小值,可選,支援double類型的浮點數
4.傳回值:
double,[0, 1]之間的值。
5.適用情境:
情境1:對price欄位做歸一化,但是不知道price的範圍,可以使用如下公式進行歸一化 normalize(price)
情境2:對price欄位做歸一化,但是只知道price的最大值為100,可以使用如下公式進行歸一化 normalize(price, 100)
情境3:對price欄位做歸一化,並且知道price的最大值為100,最小值為1,可以使用如下公式進行歸一化 normalize(price, 100, 1)
情境4:將distance函數的結果歸一化至[0, 1] normalize(distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query))
6.注意事項:
函數參數需建立為屬性
使用反正切函數進行歸一化時,如果value小於0,歸一化後的值為0
使用對數函數進行歸一化時,max的值要大於1
使用線性函數進行歸一化時,max要大於min