淺談 Solr 檢索的 相關度排名 (Ranked Retrieval)



Solr 搜尋引擎最重要的工作,在於:找出並呈現對使用者有用的資訊。

關聯性資料庫的環境中,一筆資料只有「符合」或「不符合」SQL query 篩選出的結果,只是其結果準確度描述,則付之闕如。

但在 Solr 檢索引擎則是完全不同概念 Solr 根據相關性分數比重,決定何者排 ->後

是否有種熟悉的感覺? 這很像我們操作 google 找出最適合我們的網站檢索結果

為何檢索的相關度排序如此重要?

  • 現代搜尋引擎處理的資料量是億萬等級累積計算,如果沒有「相關度排名」提供參考,使用者將迷失在浩瀚無垠的資料地獄之中。
  • 現代使用者已習慣搜尋引擎帶來的簡便性,如果使用者輸入關鍵字後,還需注意自己是否打錯字或是還要考慮同音、同義字,相信使用者一定極度不耐煩。簡單來說,使用者期待 Solr 不僅要「照我輸入的關鍵字查找」,他也期待 Solr 能「理解我要找的東西」

當然,Solr 要能符合上述運作的流暢度,適度的調教「相關度排名」因子,將非常重要。

如何進行?你可以選擇下列方式:

  • 選擇某些特定欄位加強其相關度權重
  • 預先定義好同義詞表/冗余詞
  • 給予較新的文件較高權重

(慈濟- 數位典藏資源網: 統整全球慈濟數位文物,使用 Solr 供志工、民眾搜尋、瀏覽。該網站由 詩農創意科技 建置)

當然,以上只是舉例。就像檢索引擎業者,微軟、google、DuckDuckGo 都有其獨門之處,你也運用創意可以打造出專屬於自己網站、產品或服務的檢索服務。