關於數據的高級搜索,你需要知道這些
編輯導讀:進入數據時代,面對海量的數據,想要找到一個精準的目標數據就必須要進行高級檢索。通過更多維度來描述目標數據,從而提高目標數據的精準度。本文作者圍繞數據的高級檢索,發表了自己的看法,與你分享。
大數據時代,想要發揮數據的最大效用,找到目標數據成為一個重要的課題。數據量變大,搜索條件越多,目標數據的相似度就會越高,對目標數據的描述越準確。
例如,在100萬條數據裏中找到一個特定的人。只通過姓名搜索,可能會有重名的人。如果加上性別維度進行搜索,重名的就會減少。如果再加上出生日期,符合要求的數據就會更少。如果再加上籍貫、工作、興趣愛好,就會大大縮小目標數據的範圍。從而保證目標數據的唯一性,從而出現了高級檢索的需求。
高級搜索,是一種通過更多維度來描述目標數據,從而提高目標數據的精準度,最終找到目標數據的搜索方式。
一、高級檢索高級搜索是將多個單一搜索條件通過一定的邏輯關係,按照一定的運算順序組合起來,形成一個複雜的篩選條件,並通過該複雜的篩選條件找到目標數據的方法。由兩個部分組成,多個單一搜索條件、一定的邏輯關係。下面會對該定義中的內容逐項介紹。
1. 多個搜索條件與單一搜索條件的對比關係從篩選維度角度來看,多個搜索條件的篩選維度更多。
從用户的操作成本來看,用户需要花費原來N倍的時間來編輯篩選條件,並且需要思考多個篩選條件之間的邏輯關係和運算順序,以此來提高召回數據的精準度。
從開發實現複雜度來看,單一搜索條件只需要從單表中查詢一次即可,多個搜索條件需要在多個表中查詢,另外將多個表中查詢得到的結果按照規則進行組合,程序的複雜度上會增大。
從查詢次數角度來看,對於一條數據來説,單一條件查詢一次即可,而多個搜索條件需要N次查詢。
從服務器的計算壓力來看,在一條數據中,多個搜索條件與單一查詢條件相比耗時較長。當數據量較小時,服務器的計算壓力不會有所體現。當數量增大時,查詢次數就會增大,服務器的計算壓力也會增大。體現在費用上,服務器的花費就會更貴。
從召回結果角度來看,單一搜索條件因為對目標數據描述的維度過於單一,而滿足某一個維度件的數據可能會有很多,從而召回的結果就會很多。多個搜索條件從多個維度描述目標數據,同時滿足多個條件的數據則會大大降低,召回結果就會更少,結果會更加符合用户的要求。但是很可能會因為搜索條件過於嚴苛,導致零召回。
2. 一定的邏輯關係邏輯關係用於定義篩選條件召回結果的組合方式。對召回結果按照一定的邏輯關係進行運算,進而得出用户需要的目標數據。
召回結果指的是,使用每個篩選條件去數據庫中查詢,查詢出來的結果。
對召回結果加入邏輯關係以後,一共有三種條件組合形式。
1)所有篩選結果取合集
指,所有篩選條件召回的數據結果,放在一起取合集來組成最終的召回結果。
合集所解決的問題:
- 當用户對搜索內容不確定,不知道當前的搜索條件能否召回數據,所以就希望通過對搜索結果取合集的方式來召回儘量多的數據,從而提高召回目標數據的概率。
- 當篩選條件拼寫錯誤或字段間有空格等原因導致部分篩選條件輸入錯誤,同時部分篩選條件輸入正確,在該場景下,通過合集仍然有召回目標數據的概率。
因為合集把滿足每個條件的數據都召回,並將召回結果集合在一起組成召回數據,所以合集具有召回的數據量比較大的特點。當召回的數據量過大時,用户從召回的結果中找到目標數據花費的時間成本較大。所以只有數據庫數據量較小時,通過合集召回的數據才會相對比較少,用户從小數據量的數據中找到目標數據的成本是可接受的。
例如,從400位學生找到10位學生組成年級籃球隊。從愛好、身高兩個維度篩選。要求“愛好包含籃球”“身高大於等於180cm”。但是老師無法確定學生情況,於是放鬆篩選標準,兩個條件滿足其中一個即可通過初篩。
2)所有篩選結果取交集
指,所有篩選條件召回的數據結果,放在一起取交集來組成最終的目標數據。
交集所解決的問題是,篩選條件召回的數據過多,用户通過二次檢索找到目標數據的成本高。
交集需要將每個篩選條件所召回的結果取交集從而得到召回數據,因為目標數據需要同時滿足各個篩選維度的篩選條件,所以具有召回數據量小,精準度高的特點。當數據量較大時,通過交集的方式提高召回數據與目標數據的匹配程度,同時由於召回的數據量較小,所以用户二次搜索的成本可接受。
例如,從8000位學生找到最優秀的10個人組成校籃球隊。從性別、身高、體重、愛好四個維度篩選,要求“性別為男、身高大於等於180、體重大於80kg、愛好包含籃球”。於是篩選條件間採用交集策略,必須同時滿足所有篩選條件。
3)自定義邏輯關係
指,用户自己決定篩選條件之間的邏輯關係,來控制篩選條件的嚴格程度,最終使篩選條件召回的患者數量在一個合理的水平,讓用户的二次搜索的成本是可接受的。
自定義邏輯關係解決的問題是,用户無法自行控制篩選條件的嚴格程度,在該嚴格的地方嚴格,在該放寬的地方放寬,也就無法達到最佳的召回結果。
自定義邏輯關係的特點是用户對篩選條件嚴格程度控制的自由度高。這種高自由度是建立在用户對搜索內容瞭解的基礎上,對於確定的搜索條件通過交集收縮嚴格程度,對於不確定的搜索條件通過合集的方式放鬆嚴格程度,將篩選條件嚴格程度的決策權交給用户,從而達到最佳的召回結果。
例如,從8000位學生中找到最優秀的10人組成校籃球隊。從性別、身高、體重、愛好四個維度篩選,要求“性別為男、身高大於等於180、體重大於80kg、愛好包含籃球”。但是不知道身高大於等於180cm的學生數量,在身高維度放寬篩選條件,“身高大於等於175cm 並且 彈跳高度大於15cm”也可以。
將邏輯關係的控制權交給用户,由用户根據自己的情況設定篩選條件之間的邏輯關係,選擇使用“或者”還是“並且”,自主控制篩選條件的嚴格程度。
二、總結根據數據量的大小,以及用户對目標數據的瞭解程度,用户可以根據自己需要選擇不同的搜索方式。
當數據量比較小的時候,用户可以通過單一維度對目標數據進行檢索,或者增加並集策略。
當數據量比較大的時候,用户可以通過多個維度對目標數據進行檢索和交集策略。
當用户對目標數據比較確定的時候,可以使用自定義邏輯關係的方式。
本文由 @申bobo 原創發佈於人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基於 CC0 協議