2017-07-19 58 views
0

搜索結果的相關性我有一個包含用戶的住址信息與字段和相應的權重如下:a Azure的搜索索引:我使用的搜索模式作爲任何查詢查找Azure中搜索

weights= @{ 
           HouseNumber = '40'  
           StreetName = '36' 
           City = '30' 
           PostalCode = '29' 
           Province = '25' 
           Country = '21' 
           FSA = '20'  
           Plus4 = '16' 
           SuiteName = '12' 
           SuiteRange = '11' 
           StreetPost = '10' 
           StreetPre = '8' 
           StreetSuffix = '6' 
          } 

。我怎麼能決定,最高分的記錄是最相關的記錄?意思是,如果用戶沒有輸入地址的所有關鍵字,記錄的相關性可能會有所不同。例如,如果字符串中包含等,「1A1」,這可以是郵政編碼「A1A 1A1」的一部分,或者可以是housenumber關鍵字。這將返回兩個記錄,但分數不同。我應該如何解決這個問題?

回答

0

如果查詢的術語可匹配多個字段(例如,如果「1A1」可匹配在郵編和HouseNumber域結果),則該得分分佈會預期運行通過提高每一個相應的結果。

您應該測試應用程序,因此query is field-scoped。這樣,查詢的每個部分都會根據適當的字段進行搜索,並相應地提高匹配度。

+0

的問題是,如果該領域創建領域範圍時不在正確的字段。這些查詢是由可能導致人爲錯誤的最終用戶創建的。所以,在這種情況下,查詢將不起作用。此外,可能會出現這樣的情況:搜索查詢的某些部分可能爲空或可能具有額外的值。例如如果查詢具有完整的地址,而不是數據庫將包含國家的國家。此外,如果查詢在查詢中指定了特定的街道名稱,但我們的數據庫將該字段作爲空值用於期望的結果。 –

+0

在查詢缺少信息的情況下(例如,如果查詢不包含PostalCode),字段範圍的查詢不會返回不相關的結果,因爲不會在該字段上執行搜索。當索引文件丟失的信息(例如,如果一個查詢包括HouseNumber和HouseNumber場是在結果爲空),那麼該領域範圍的查詢還是應該返回基於其他字段(即StreetName,省相關的結果,等等),即使它不符合特定的HouseNumber。像同義詞和模糊搜索功能可以幫助減輕人爲錯誤。 – ashmaka

+0

但是,如何處理涉及錯誤字段映射的人爲錯誤呢? –