搜尋引擎代表了基於查詢,返回優先文件的一種方法。在關係型資料庫的sql查詢中,表的一行要麼匹配乙個查詢,要麼不匹配,查詢結果基於一列或多列排序。搜尋引擎根據文件與查詢匹配的程度為文件打分,並按降序返回結果。匹配程度的計算取決於多個因素,一般而言,文件得分越高意味著該文件與查詢的相關性越強。
在solr中會存在單獨的字段儲存相關性,那就是score欄位。在score欄位的得分數值並非具有絕對意義,它在lucene內部僅作為相對排名,而且同一文件在不同的查詢中的得分並無關係。也就是說,與查詢匹配的文件相關度得分僅適用於該查詢。返回的結果按照得分從低到高排序,文件得分越高。說明與該查詢越相關。
優點:1.提供清晰的導航方式,把使用者越需要的放在越靠前的位置。
2.智慧型化程度高,使用者無需考慮排序問題。
查準率【precision,精度性的度量】的具體定義如下:正確匹配的文件數量/返回的文件數量【介於0.0~1.0之間】,例如:
假設某次搜尋返回的文件集合為文件1、2、3,那麼該查詢的查準率為1.0【3個正確匹配/3個全部匹配】,這是理想狀態。但是,如果返回全部6個結果,那麼查準率僅為0.5,因為返回的結果中有一半是不相關的。同樣地,如果只返回乙個相關文件【比如文件1】,那麼查準率依然是1.0,因為返回的結果都是匹配的。可見,查準率是衡量結果與查詢是否相關的乙個指標,但是它並不關注全面性,即使只返回了100個匹配文件中的1個,查準率依然為1.0【返回的文件中沒有不匹配文件】。由於查準率僅考慮了返回結果的整體精確性,而未考慮結果集的全面性,因此需要將查全率與查準率配合使用。
查準率與查全率的重要區別是,如果返回的結果是正確的,則查準率高;如果正確的結果都被返回了,則查全率高。查準率不關心正確結果是否都被返回出來,而查全率不關心返回的結果是否都是正確的。
雖然查準率與查全率之間存在明顯的互逆關係,但它們並不是相互排斥的。在前面的示例中,如果只返回全部匹配文件【文件1、2、3】,那麼查準率和查全率就都是1.0。這是因為所有匹配且無不陪配的文件被返回了。
solr中平衡查準率與查全率的一種常見方式是在整個結果集上計算查全率,僅在搜尋結果第一頁【或前幾頁】上計算查準率。根據這一模型,調整solr的相關度評分的計算方式,讓更好的匹配結果被提公升到搜尋結果的頂部,而許多不良的匹配出現在搜尋結果的底部。
大多數搜尋應用處於兩個極端之間。由於大多數情況下沒有所謂的正確答案,所以在查準率與查全率之間取得適度平衡成為一項長期的挑戰。不管怎樣,理解查準率與查全率以及如何在兩者之間做出調整,使得槓桿向某一遍傾斜【另一邊上公升】,是有效改進搜尋結果質量的關鍵。
2.進行深度分析任務。這需要訪問大量索引,即使通過分頁解決上述問題,底層索引的資料結構也並不適合一次檢索大量索引。
Solr實戰之 二 Solr基礎理論
2.1 什麼是文件?solr是乙個文件儲存與檢索引擎,提交給solr處理的每乙份資料都是乙個文件 一片新聞報道,乙份簡歷,社交使用者資訊 每個文件包含乙個或多個字段,每個欄位被賦予具體的字段型別。solr查詢返回的主要搜尋結果是由乙個或多個字段組成的文件集。2.2 基本搜尋問題 背景 傳統sql資料...
基礎理論(四)
1.簡述python中物件的記憶體是如何管理的 2.簡述類和物件的概念及類繼承的特點 3.簡述python如何操作 mysql,用到什麼包 寫出具體的增刪改查語句 4.簡述scrapy爬蟲的資料流向過程 5.網路七層協議都是哪七層?6.scrapy中如何設定隨機請求頭 隨機 寫出具體步驟 需要什麼配...
vue基礎理論
2 前端框架與庫的區別?kfc的世界裡,庫就是乙個小 框架就是全家桶 上的不同 3 vue起步 vue的檔案介紹 4 插值表示式 注意 必能直接寫語句 可以用於頁面中簡單粗暴的除錯 注意 必須在data這個函式中返回的物件中宣告 比如在angular中 以ng 開頭的就叫做指令 在vue中 以v 開...