2017-01-02 26 views
4

我想在我的Azure搜索索引上添加評分配置文件。更具體地說,我的索引中的每個文檔都有一個weight字段,類型爲Edm.Double,我想根據此值提升它們。我不想直接對weight進行排序,因爲搜索詞的相關性也很重要。評分配置文件如何在Azure搜索中生成分數?

因此,爲了測試它,我創建了一個帶有幅值函數的評分配置文件,其值爲1000(僅用於查看該物體是如何工作的),線性插值,起始值0和結束值1。期待的是增加整體搜索分數的提升值。所以一個重量爲0.5的文檔會得到500的提升,而重量爲0.125的文檔會得到125的提升。然而,得到的分數遠不如此直觀。

我在這種情況下幾個問題:

1)如何在這種情況下產生的功能評分?我的文件重量相近(比如說0.5465和0.5419),但最終得分差距大約在100-150之間,而我預計它會在4-5左右。

2)函數得分和權重如何彙總爲每個搜索結果的最終得分?

回答

1

感謝您提供的細節。這兩份文件的基準相關分數是多少?

在評分配置文件中提供的助推因子實際上是乘以到使用術語頻率計算的基準相關分數。例如,假設兩個文檔中響應負載的@ search.score中給出的基本分數分別爲0.5和0.2,權重列中的值分別爲0.5465和0.5419。使用上面給出的評分配置文件配置,初始值爲0,結束值爲1,線性插值和1000的加速因子。您爲每個文檔獲得的最終分數計算如下:

文檔1: 基search_score(0.5)* boost_factor(1000)*(重量(0.5465) - 分鐘(0))/最大 - 最小(1)= final_search_score(273.25)

文獻2: base_search_score(0.2)* boost_factor( 1000)*(weight(0.5419) - min(0))/ max - min(1)= final_search_score(108.38)

請讓我知道你得到的最終分數是否與上述函數不一致。謝謝!

Nate

+0

謝謝Nate,這完全回答了我的問題。我需要的一個解釋是對每個領域使用權重。如果我的田地上有體重,那麼首先用這些權重計算基準分數,然後使用這個基準分數計算你解釋的公式,這是否正確? – halileohalilei

+0

如果您指的是評分檔案中的字段權重,則字段權重已經計入基本分數中,然後應用附加提升。 –

+0

再次感謝內特。也是最後一件事。具有評分函數最小值的文檔是否總是得到0的最終分數?在我的情況下,'weight - min'可能爲0,但是在這種情況下,我不希望這個文檔在搜索結果中很深入,我只是不希望它被提升並保持其原始基本分數。因此,我不想將插值的增強因子與基礎分數相乘,而是要添加它們。有沒有辦法做到這一點?或者解決這個問題的其他解決方案? – halileohalilei