1、實戰(zhàn)問題
這個問題非常有代表性,我在實際產(chǎn)品開發(fā)中也遇到過。 2、從幾個例子說搜索體驗示例一:“慕X網(wǎng)”輸入“觸發(fā)器”的搜索截圖。注意:我輸入的是“觸發(fā)器”,返回結(jié)果第一條沒有問題,其他幾條有關(guān):“觸”、“發(fā)”的,可以說和我的搜索沒有關(guān)系。 站在用戶體驗的角度,我認(rèn)為:體驗很差,返回了很多不相關(guān)的數(shù)據(jù)。 示例二:某題庫APP,不支持跳轉(zhuǎn)翻頁。如下所示,題庫共1703題,包含:判斷題、選擇題。 只支持:點擊:上一題、下一題。 實際場景:
這不是用戶體驗差,這是沒有用戶體驗,開發(fā)者完全沒有動腦子的設(shè)計,用戶會"懷疑人生"。 示例三:電商搜索“秋天第一條秋褲”,該返回什么?放大查看圖片,亮點自現(xiàn) 這是個見仁見智的問題,究竟返回什么,各個電商公司都有自己的評判。 但,單純站在用戶的角度,高下立判。 銘毅一句話點評:
“活該你發(fā)展快”,的確返回結(jié)果就是預(yù)期結(jié)果,且友好的推薦了所在地域的“秋褲”信息。
中規(guī)中矩,至少能返回“秋褲”。
沒有找到商品,為你推薦“秋褲”,“干嘛推薦,直接返回不就完了”。
好家伙!推薦的都是“秋天”的商品。你是用戶,你咋想?
...... 基本上可以得出結(jié)論:公司發(fā)展速度和搜索體驗成正比。 3、有數(shù)據(jù)的地方,就有搜索信息泛濫和爆炸的今天,搜索無處不在。基本可以形象的概括為:“有數(shù)據(jù)的地方,就有搜索“。 搜索可能是用戶最常用到的功能之一,學(xué)習(xí)、工作、衣食住行等各個環(huán)節(jié)都離不開搜索。
輸入關(guān)鍵詞,搜索靠譜的免費或付費網(wǎng)絡(luò)資源。
遇到錯誤碼,通過Google 搜索獲得答案。 搜索微信聊天記錄,看看之前都聊的某個關(guān)鍵有價值信息。
網(wǎng)上購買衣服,實際就是搜索、選擇的過程。
日常中午訂外賣,選擇外賣的過程,就是搜索的過程,離公司近+評價高=下單幾率大。
出差訂酒店,搜一下,對比選擇個性價比高的。
十一自駕游,出行前高德導(dǎo)航,輸入目的地搜索結(jié)果,根據(jù)返回結(jié)果,選擇合適路線。 正如:搜索體驗的分析文章指出:“搜索框的設(shè)計及其可用性問題其實是一個不容忽視的要點。 一個好的搜索體驗也許并不能讓用戶對你的產(chǎn)品產(chǎn)生特別的好感,但是一個不好的搜索體驗卻能給你的產(chǎn)品帶來致命的打擊。 所以無論是為了給用戶提供更好的服務(wù),還是避免用戶產(chǎn)生消極的體驗感受,做好搜索的體驗對一個內(nèi)容型產(chǎn)品來說都是至關(guān)重要的。“ 判定搜索體驗好不好,搜索結(jié)果滿足用戶需求已是最低門檻要求,以下內(nèi)容都是能帶來良好搜索體驗的考察點、用戶關(guān)注點:
1)在視覺上突出搜索框、搜索框與放大鏡icon配合使用; 2)將搜索框置于用戶預(yù)期的位置; 3)提供搜索按鈕; 4)合適的尺寸 毫不客氣的說:“在導(dǎo)航欄最顯眼位置放置搜索框是對用戶最起碼的尊重”!
智能推薦或匹配可以節(jié)省用戶的輸入成本。 普通用戶不太善于組織搜索語言:在這種情況下如果他們沒有在第一步就表達(dá)清楚問題,那么接下來也很難成功找到合適的搜索結(jié)果。 當(dāng)智能匹配發(fā)揮作用后,它就能幫助用戶表達(dá)清楚搜索的問題,進(jìn)而找到滿意的答案。 一句話,好的搜索體驗就是好的用戶體驗,而好的用戶體驗自然和用戶留存、甚至公司發(fā)展掛鉤。 4、用戶搜索的五個核心環(huán)節(jié)拆解“搜索就像是用戶與 App 或者網(wǎng)站之間的對話,用戶通過提問表達(dá)信息需求,App 或者網(wǎng)站通過展示結(jié)果來作為回應(yīng)。 用戶期待流暢的搜索體驗,并且基于搜索結(jié)果的質(zhì)量用戶通常會對一個 App 的價值形成一個快速的判斷?!?/p> 在搜索的過程中,用戶的經(jīng)歷大致可以分為五個部分,分別是:發(fā)現(xiàn)搜索、輸入關(guān)鍵詞、等待結(jié)果、查看結(jié)果、完成搜索,每個步驟的體驗都是整體體驗的一部分,將對用戶最終對搜索體驗產(chǎn)生影響。 4.1 發(fā)現(xiàn)搜索如前所述,搜索框要醒目,搜索欄甚至?xí)毩⒂陬^部并且會在UI界面中占據(jù)視覺焦點的位置,用戶很容易就能找到。 4.2 輸入關(guān)鍵詞
4.3 等待結(jié)果
4.4 查看結(jié)果
4.5 完成搜索
若要完善用戶體驗,這幾個步驟缺一不可、都得下功夫。 5、Elasticsearch 搜索的底層邏輯明白下面兩個過程,就能很好的理解 Elasticsearch 搜索。 以下僅針對:text的全文檢索的文本類型。 5.1 寫入索引化過程
5.2 數(shù)據(jù)檢索過程
比如:“match”細(xì)粒度檢索和“match_phrase”粗粒度短語匹配,將是截然不同的搜索結(jié)果。 match:會首先把你輸入的關(guān)鍵詞進(jìn)行切分后再檢索。 match_phrase:會把你輸入的詞當(dāng)做短語進(jìn)行檢索。 6、Elasticsearch 搜索體驗可量化的指標(biāo)用戶體驗是感官反應(yīng),但感覺的搜索結(jié)果需要量化下。 如何量化?實際本質(zhì)指標(biāo)就是:查準(zhǔn)率(精確率)、查全率(召回率)。 6.1 召回率定義:本次搜索結(jié)果中包含的相關(guān)文檔占整個集合中所有相關(guān)文檔的比率。 衡量檢索結(jié)果的查全率。 6.2 精確率定義:本次搜索結(jié)果中相關(guān)文檔所占的比例。 衡量檢索結(jié)果的查準(zhǔn)率。 具體可以根據(jù)混淆矩陣來理解,
已知上述矩陣,那么準(zhǔn)確率和召回率可以按如下方法計算: 召回率:= tp / (tp + fn) * 100%; 精確率:= tp / (tp + fp) * 100% 如果還不好理解,知乎上通俗解釋:
7 、如何改進(jìn) Elasticsearch 搜索體驗前面也提到了,搜索五環(huán)節(jié)環(huán)環(huán)相扣。搜索體驗是:設(shè)計、前端、后端、決策層、管理層都要考慮的事情,不能簡單的理解為是技術(shù)問題。 本文僅對 Elasticsearch 后端技術(shù)實現(xiàn)層面做下解讀: 7.1 根據(jù)業(yè)務(wù)場景選擇合適的分詞器注意,沒有最好的分詞器、沒有適合所有業(yè)務(wù)場景的通用分詞器,需要結(jié)合業(yè)務(wù)場景擇優(yōu)選擇。
切詞對比核心 API :analyzer 要活學(xué)活用。 POST _analyze
ik_smart是粗粒度的分詞(返回盡可能少,逼近貼合人工分詞); ik_max_word是細(xì)粒度的分詞(返回盡可能多)。 7.2 注意詞典的選擇與更新“巧婦難為無米之炊“,“巧婦“是分詞器,詞典是“米”。 分詞器再牛逼,沒有靠譜的詞典也是徒勞。 所以,詞典選擇的好,分詞才會越準(zhǔn)確。 建議:在基礎(chǔ)詞庫相對全的前提下,需要結(jié)合業(yè)務(wù)場景添加屬于自己的行業(yè)詞庫、領(lǐng)域詞庫等。 即便添加了行業(yè)、領(lǐng)域詞典,也涵蓋不全新詞怎么辦? 比如:新的網(wǎng)絡(luò)詞匯、行業(yè)領(lǐng)域詞匯不能面面俱到導(dǎo)致分詞不正確,用戶體驗差怎么辦? 由于分詞器作為插件,原始詞典一旦配置,是不支持動態(tài)更新的,需要借助第三方機(jī)制實現(xiàn)。 比如:IK 詞典的動態(tài)更新實現(xiàn)機(jī)制:結(jié)合修改 IK 分詞器源碼 + 動態(tài)更新 mysql 詞條達(dá)到更新詞典的目的。 7.3 重視 Mapping 環(huán)節(jié)數(shù)據(jù)建模
7.4 根據(jù)業(yè)務(wù)場景,選擇合適的搜索類型如前所述:match 和 match_phrase 適用場景不同、高下立判。
當(dāng)然,還有其他檢索類型,如:query_string, fuzzy等,需要結(jié)合業(yè)務(wù)場景做出選擇。 7.5 追求極致響應(yīng)速度,要做取舍權(quán)衡用戶的忍耐時間非常有限, 不要讓用戶等。
包含但不限于: 1)二重以上聚合 2)wildcard 或者 regex 正則檢索 3)自定義高亮
注意:當(dāng)文件>1MB(大文件)時候,尤其適合 fvh 高亮方式。
比如:默認(rèn) from,size 深度分頁10000條夠了,如果產(chǎn)品經(jīng)理不同意,需要討論說服之。 比如:聚合結(jié)果不準(zhǔn)確是 Elasticsearch 默認(rèn)機(jī)制,要接受或者做其他方案選型(比如:clickhouse),不糾結(jié)細(xì)節(jié)。 7.6 使用智能推薦/匹配機(jī)制
GET kibana_sample_data_ecommerce/_search
POST /blogs/_search 篇幅原因,關(guān)于 Suggester 解讀, 推薦:wood大叔的文章: https:///article/142
一個優(yōu)秀的推薦引擎更趨向于個性化推薦,它可以通過收集用戶有價值的數(shù)字足跡(如:人口統(tǒng)計、事務(wù)細(xì)節(jié)、交互日志、購買記錄、交易記錄、瀏覽記錄)和關(guān)于產(chǎn)品的信息(例如:規(guī)格、用戶反饋、與其他產(chǎn)品比較等),來完成推薦之前的數(shù)據(jù)分析。 8、小結(jié)搜索體驗決定用戶體驗,用戶體驗決定的產(chǎn)品的用戶率進(jìn)而決定的產(chǎn)品的成敗。 著名產(chǎn)品人梁寧老師在《產(chǎn)品思維30講》提到“我們看到很多新的互聯(lián)網(wǎng)公司,系統(tǒng)能力不如傳統(tǒng)企業(yè),但是可以從傳統(tǒng)企業(yè)那里搶奪大量用戶,靠的就是用戶體驗。在體量差異這么大的情況下,用戶體驗?zāi)艹蔀楹诵母偁幜?;同維度競爭的時候,用戶體驗更是最核心的競爭力”。 搜索是流量入口,是“兵家“(各APP、網(wǎng)站)用戶體驗必爭之地。 搜索體驗的迭代是沒有終點的,研究的多深、做的多仔細(xì)都不為過。 大家有好的思路和建議也歡迎補充交流。 參考:
推薦: 干貨 | Elasticsearch 開發(fā)實戰(zhàn)常用命令清單 干貨 | Elasticsearch開發(fā)人員最佳實戰(zhàn)指南 Elasticsearch 開發(fā)運維實戰(zhàn)核心 Tips 干貨 | 論Elasticsearch數(shù)據(jù)建模的重要性 干貨 | Elasticsearch 索引設(shè)計實戰(zhàn)指南 干貨 | Elasticsearch多表關(guān)聯(lián)設(shè)計指南 更短時間更快習(xí)得更多干貨! 中國40%+Elastic認(rèn)證工程師出自于此! |
|