「輸入框搜索」的設計細節(jié)
輸入框搜索主要應用于搜索內容非標準化的場景,如名稱、正文、編號這些無法通過確定條件進行查找的內容。
這其中涉及的細節(jié)設計問題有很多:
1)關鍵字搜索or語義搜索
(1)關鍵字搜索
關鍵字搜索是根據(jù)用戶輸入關鍵字進行檢索,如用戶輸入“B端產品”,則系統(tǒng)會把搜索范圍內所有包含“B端產品”這四個字的內容全部檢索出來。關鍵字搜索是目前B端產品中最主要的檢索方式。
(2)語義搜索
語義搜索是更為復雜的搜索方式,需要語義識別、語義匹配、用戶習慣分析、智能排序等人工智能領域的技術支持,這種搜索方式在C端產品中用得較多,在B端產品中用得很少。
2)聚合搜索or分字段搜索
(1)聚合搜索
聚合搜索是指一個輸入框,可以同時搜索多個字段內容。輸入關鍵詞“人人都是產品經(jīng)理”,可以對名稱、描述等多個字段進行檢索匹配。優(yōu)劣都比較明顯。
優(yōu)勢:
搜索方便,一次能搜索大量數(shù)據(jù);
用戶無須記憶自己要搜索的關鍵字是哪個字段,可以減少用戶的記憶成本。
劣勢:
同時檢索字段數(shù)據(jù)多,后臺可能需要跨表檢索(指同時從多張數(shù)據(jù)庫表中檢索),當搜索數(shù)據(jù)量大時,會導致搜索時間過長,影響用戶體驗,實現(xiàn)起來也比較麻煩。
搜索結果不夠精確,如果只提供聚合搜索,對于用戶清楚地知道搜索關鍵詞在哪個字段的場景不友好。

(2)分字段搜索
隨著時間推移,系統(tǒng)中的數(shù)據(jù)越積越多,用戶也越來越熟悉產品,這時聚合搜索的不足所造成的困擾已大于它的優(yōu)勢所帶來的便利了,所以聚合搜索看似方便,實則在B端產品中應用得并不多,在B端產品中更多的還是采用分字段搜索,將搜索精確到具體字段。

(3)綜合形式
用戶輸入關鍵詞的同時給出“全部”和其他可能需要搜索字段選項,由用戶自由選擇。綜合形式可以綜合兩種方式的優(yōu)點,同時也繼承了兩種方式的不足,還增加了實現(xiàn)難度,所以這種方式用得更少。

3)模糊匹配or精確匹配
(1)模糊匹配
模糊匹配是系統(tǒng)只需根據(jù)幾個關鍵詞,就會把含這個關鍵詞的數(shù)據(jù)都顯示出來,即使輸入不完全,也能完成搜索。一般來說,B端產品都會采用模糊搜索的方式,因為這種方式的體驗更好,但對于部分特殊場景,則需要采用精確匹配的方式。

(2)精確匹配
精確匹配是只有用戶把搜索內容完整輸入時,系統(tǒng)才能正確檢索出用戶所需結果。例如,用戶要搜索“B端產品經(jīng)理”,則必須完整輸入“B端產品經(jīng)理”才可搜索想要結果,如果只是輸入“B端”兩個關鍵字,是無法搜索的。
“精確匹配”會給用戶帶來較高的記憶成本,主要在三種特殊場景中會使用。
對接的第三方無法提供模糊搜索接口時。
搜索數(shù)據(jù)有保密性要求。在這種場景中,不能讓用戶隨便輸入一個關鍵詞就進行匹配,會存在其他信息泄露的風險。例如,通過身份證號進行搜索時,用戶必須輸入完整身份證號信息才會進行匹配。
數(shù)據(jù)量非常大。這其實是一種“半精確匹配”,即當數(shù)據(jù)量非常大時,通過極少數(shù)的信息進行模糊匹配非常影響性能,檢索起來非常慢,因為匹配的數(shù)據(jù)量很大,這時會要求用戶輸入較多內容才能進行搜索。
4)實時搜索or手動觸發(fā)
(1)實時搜索
實時搜索是每輸入一個字符就根據(jù)已輸入內容進行搜索。這種方式很及時,能讓用戶及時看到結果,搜索體驗會很好,但這種方式意味著用戶會實時請求搜索接口,對接口造成一定壓力,當使用人數(shù)較多時,容易出現(xiàn)系統(tǒng)報錯,所以即使這種方式體驗比較好,我們也很少采用。
(2)手動觸發(fā)
手動觸發(fā)則需要用戶在輸入完成后點擊“搜索”按鈕或“回車鍵”后進行搜索,這種方式雖然慢一點,但從實現(xiàn)成本角度來說性價比是更高的,對用戶體驗影響也不大,所以這種方式應用更普遍。
