站內(nèi)搜索,如何讓我們找到想要的信息?
互聯(lián)網(wǎng)信息技術(shù),極大地?cái)U(kuò)寬了人類的信息獲取半徑。我們每天都在使用著各種各樣的搜索功能,在微信、小紅書(shū)、手機(jī)系統(tǒng)里,我們都在“搜索”。那么,搜索到底是一個(gè)怎樣的技術(shù)呢?它是如何讓我們快速找到想要的信息的呢?本文作者對(duì)站內(nèi)搜索功能進(jìn)行了分析,一起來(lái)看一下吧。
搜索技術(shù),無(wú)論是對(duì)個(gè)人,還是對(duì)企業(yè),都是非常重要的技術(shù)。
互聯(lián)網(wǎng)信息技術(shù),對(duì)于人類來(lái)說(shuō),最本質(zhì)的改變?cè)谟?,極大地?cái)U(kuò)大了人類的信息獲取半徑。
2017 年,IDC 發(fā)布的《數(shù)據(jù)時(shí)代 2025》白皮書(shū)中,就提到了互聯(lián)網(wǎng)中的信息總量,到 2025 年,將大財(cái) 160 億ZB,按照全球的網(wǎng)民按照 50 億人計(jì)算,意味著每個(gè)人將被分配到 3.2 ZB 的信息量。這樣的信息量,是在互聯(lián)網(wǎng)之前的時(shí)代,在靠書(shū)本和語(yǔ)言傳播信息的年代無(wú)法想象的。
面對(duì)海量的信息,如何找到我們所要的信息,是在互聯(lián)網(wǎng)時(shí)代必備的技能之一。而搜索技術(shù),就是這樣一把利器,讓用戶更快地找到自己想要的內(nèi)容。
回顧互聯(lián)網(wǎng)的發(fā)展歷程,起初新浪,網(wǎng)易等各大門戶網(wǎng)站是用戶瀏覽的主要站點(diǎn)。但很快,隨著互聯(lián)網(wǎng)信息的增長(zhǎng),門戶分類的方式已經(jīng)無(wú)法滿足用戶尋找信息的需求。接下來(lái)的故事,大家也就知道了,像 Google、百度這樣的公司,依靠搜索引擎技術(shù),找到了新的商業(yè)變現(xiàn)模式——“關(guān)鍵詞廣告”,成為了 PC 互聯(lián)網(wǎng)時(shí)代的王者。
我們每天都在使用著各種各樣的搜索功能,在微信里,在小紅書(shū)里,在手機(jī)系統(tǒng)里,在瀏覽器里,我們都在“搜索”。
那么搜索到底是一個(gè)怎樣的技術(shù)呢?
它是怎樣做到讓我們?nèi)绱酥斓卣业较胍男畔⒌哪兀?/p>
一、搜索
搜索功能,本質(zhì)上都是在數(shù)據(jù)庫(kù)里進(jìn)行檢索。
比如,在一個(gè)人才數(shù)據(jù)庫(kù)中,高啟強(qiáng)的數(shù)據(jù)是:
可以理解為,在一份紙質(zhì)表格里找數(shù)據(jù)。例如現(xiàn)在在一個(gè) 20 行 6 列的表格里,我們有找到高啟強(qiáng)的信息,那么只要從第 1 行到第 20 行,每行 5 個(gè)數(shù)據(jù)局都過(guò)一遍,直到高啟強(qiáng)。這就是搜索。
這樣的搜索方式在數(shù)據(jù)庫(kù)量級(jí)不大的情況下是可行的,但如果數(shù)據(jù)量上升,達(dá)到 2000 萬(wàn)行,那原來(lái)的方式,就行不通了。所以就需要使用更高效的搜索,也就是通過(guò)建造[[索引]]的方式來(lái)提高搜索速度,例如,京海市的人才庫(kù)里有 2000 萬(wàn)人,如果我先找到姓“高”的人才,再?gòu)母咝杖瞬胖胁檎腋邌?qiáng),速度則會(huì)快很多。
在 Elasticsearch 中,使用到的“倒排索引”技術(shù)來(lái)提高搜索的有效性和可用性。
例如 ES 會(huì)為高啟強(qiáng)建立這樣的索引:
- 38 歲 ~ 高啟強(qiáng)
- 魚(yú)販 ~ 高啟強(qiáng)
- 京海市 ~ 高啟強(qiáng)
這樣,我在搜索京海市的魚(yú)販時(shí),也可以搜索到高啟強(qiáng),提高了搜索的有效性和準(zhǔn)確性。
(倒排索引示意圖,圖片來(lái)源于網(wǎng)絡(luò))
二、全網(wǎng)搜索 vs 站內(nèi)搜索
上面講到,搜索本質(zhì)上都是在自己的數(shù)據(jù)庫(kù)中檢索,那么根據(jù)一般根據(jù)搜索的范圍劃分,我們可以將搜索技術(shù)分為全網(wǎng)搜索和站內(nèi)搜索
- 全網(wǎng)搜索,如 google,百度
- 站內(nèi)搜索,如 淘寶、微信里的搜索
兩者的區(qū)別在于,全網(wǎng)搜索需要檢索全網(wǎng)的內(nèi)容,所以搜索引擎需要利用爬蟲(chóng)技術(shù),爬取網(wǎng)頁(yè)的資料,整合到自己的數(shù)據(jù)庫(kù)中,才能被用戶搜到。例如 google 的 spider 爬蟲(chóng)機(jī)器人,就會(huì)定期爬取全網(wǎng)的所有頁(yè)面,收錄到 google 的系統(tǒng)中。只有被收錄的網(wǎng)頁(yè),才能夠在 google 搜索到。
而站內(nèi)搜索,因?yàn)樗阉鞯膬?nèi)容都是自己的,所以更重要的是怎樣將內(nèi)容更好地組織好,放到搜索引擎中,讓用戶更快搜索到。舉一個(gè)大家日常都在使用的例子 —— 微信搜索:微信就將自己的搜索結(jié)果分為聊天記錄、聯(lián)系人、文章、表情、百科……等等不同的分類,讓用戶更快地找到想搜的內(nèi)容。
三、點(diǎn)擊搜索后,發(fā)生了什么?
由于個(gè)人的工作經(jīng)歷相關(guān),之前在一個(gè)電商平臺(tái)中負(fù)責(zé)搜索相關(guān)的需求。所以今天我們主要來(lái)聊聊站內(nèi)搜索功能。
一切搜索的行為,是從用戶輸入一個(gè)搜索詞開(kāi)始的。當(dāng)我們?cè)谒阉骺蛑休斎胍粋€(gè)詞,點(diǎn)擊搜索后,發(fā)生了什么?
我畫了一張搜索功能的圖景:從一個(gè)關(guān)鍵詞開(kāi)始,搜索服務(wù)會(huì)怎么處理,最終返回搜索結(jié)果,如下:
接下來(lái)就分為一個(gè)部分來(lái)簡(jiǎn)單講講搜索服務(wù)的流程。
1. 文本分析器
當(dāng)收到一個(gè)“搜索詞”后,并不能馬上發(fā)起搜索,而是要經(jīng)過(guò)文本分析和處理,再使用處理過(guò)后的文本發(fā)起搜索。
1)分詞
用戶在輸入框中,輸入的可能是一個(gè)句子,可能是一個(gè)短語(yǔ),可能是一個(gè)詞。用戶的意圖是多樣的。這就是需要我們對(duì)用戶輸入的詞語(yǔ)進(jìn)行分詞和理解。
例如用戶輸入的搜索詞是“珠江新城咖啡廳”,這樣的詞語(yǔ),經(jīng)過(guò)分詞算法的處理,可能會(huì)識(shí)別出以下幾個(gè)搜索詞“珠江”,“珠江新城”,“咖啡”和“咖啡廳”。
分詞算法,使用自然語(yǔ)義識(shí)別 (NLP)和詞頻分析等技術(shù),比較復(fù)雜。對(duì)小公司而言,可以使用一些開(kāi)源的分詞技術(shù)。大公司可能會(huì)根據(jù)自己的業(yè)務(wù)對(duì)分詞算法進(jìn)行優(yōu)化,例如美團(tuán)技術(shù)團(tuán)隊(duì)的文章中《美團(tuán)搜索中 NER 技術(shù)的探索欲實(shí)踐》就提到了:在進(jìn)行實(shí)體字典匹配前引入了CRF分詞模型,針對(duì)垂直領(lǐng)域美團(tuán)搜索制定分詞準(zhǔn)則,人工標(biāo)注訓(xùn)練語(yǔ)料并訓(xùn)練CRF分詞模型。
在我們之前做的海外項(xiàng)目的分詞中,因?yàn)槟壳皼](méi)有開(kāi)源的針對(duì)小語(yǔ)種的分詞器的,于是只能使用最基礎(chǔ)的空格分詞。例如用戶輸入的是“Be?ikta? Coco Bean Coffee”,經(jīng)過(guò)分詞后,會(huì)得到“Be?ikta?”,“Coco”,“Bean”,“Coffee” 幾個(gè)詞,加上原文本一起分別進(jìn)行搜索。
2)特殊詞處理
分詞結(jié)束后:
- 部分被禁止的詞語(yǔ),政治相關(guān)或色情相關(guān)的搜索詞,會(huì)被移除,不然,可能就會(huì)請(qǐng)喝茶了。
- 有些預(yù)期主持,例如“嗎”“啊”等停用詞,會(huì)被移除。例如用戶搜索的詞語(yǔ)是“附近有咖啡廳嗎?”,其實(shí)就可以理解為“附近”和“咖啡廳”,“有”和”嗎“是可以去掉的。
3)同義詞識(shí)別
有些含義相同的詞語(yǔ),例如經(jīng)典的“西紅柿”和“番茄”,這些同義詞,需要人工維護(hù),搜索運(yùn)營(yíng)會(huì)觀察搜索數(shù)據(jù),講一些常見(jiàn)的同義詞,維護(hù)關(guān)聯(lián)到一起。這樣搜“西紅柿”的時(shí)候,也可以搜到“番茄”的結(jié)果。
4)實(shí)體識(shí)別(類目預(yù)測(cè))
實(shí)體識(shí)別是根據(jù)用戶輸入的搜索詞,預(yù)測(cè)用戶想要搜索的實(shí)體(如商品、內(nèi)容、表情等)。這一技術(shù)非常重要,可以很大提高搜索的準(zhǔn)確度。
例如“珠江新城咖啡廳”這個(gè)搜索詞,在被分詞為“珠江”,“珠江新城”,“咖啡”和“咖啡廳”后,其中一些詞語(yǔ)會(huì)命中特點(diǎn)的類目,例如“珠江新城”會(huì)命中商圈、地鐵站的實(shí)體詞庫(kù),“咖啡”會(huì)命中食物分類的實(shí)體詞庫(kù),“咖啡廳”會(huì)命中餐廳類型的實(shí)體詞庫(kù)。
這樣的實(shí)體識(shí)別,可以預(yù)測(cè)用戶的搜索意圖,在下方做搜索結(jié)果的排序時(shí),提高對(duì)應(yīng)實(shí)體的排序。比如,在微信搜索中,如果你搜索“高啟強(qiáng)表情”,那么微信會(huì)優(yōu)先展示表情的搜索結(jié)果。
2. 搜索
搜索的過(guò)程,實(shí)際上可以分為召回和排序兩步:
- 召回:把符合的搜索結(jié)果拿回來(lái)
- 排序:按照排序規(guī)則,對(duì)召回的結(jié)果進(jìn)行排序
1)召回
召回時(shí)常見(jiàn)的問(wèn)題是在「召回率」和「精確率」的取舍。
召回?cái)?shù)據(jù)的太多,可能會(huì)導(dǎo)致召回了不相關(guān)的結(jié)果。召回的數(shù)據(jù)太少,有可能導(dǎo)致想要搜索的結(jié)果沒(méi)有召回。
我們可以通過(guò)增加篩選條件,通過(guò)實(shí)際識(shí)別技術(shù),對(duì)不同的實(shí)體提供不同的召回率來(lái)優(yōu)化搜索結(jié)果。
例如還是在高啟強(qiáng)的案例中,通過(guò)名稱來(lái)搜索“高啟強(qiáng)”的的人數(shù)肯定是最多的,也就是“姓名”這個(gè)實(shí)體重要性最高。通過(guò)搜索“舊廠街”來(lái)搜索的人數(shù)其次,“住址”這個(gè)實(shí)體可以列為中等重要。而通過(guò)身高來(lái)搜索高啟強(qiáng)的人數(shù)肯定比較少,重要性最差。當(dāng)用戶搜索 175 時(shí),就沒(méi)必要召回高啟強(qiáng)的數(shù)據(jù)。
2)排序
常見(jiàn)的排序,是按照單一維度的排序。例如從近到遠(yuǎn)排序,評(píng)分從高到底排序。
早期的大眾點(diǎn)評(píng),提供了這樣的排序方式,但是因?yàn)閱我痪S度的排序,往往很難滿足用戶的需求,會(huì)導(dǎo)致搜索結(jié)果中出現(xiàn)大量低質(zhì)量的門店。所以后來(lái),大眾點(diǎn)評(píng)也將“從近到遠(yuǎn)”優(yōu)化成了“距離優(yōu)先”,將“評(píng)分從高到低”優(yōu)化為“好評(píng)優(yōu)先”,在距離和評(píng)分的基礎(chǔ)上,加上了其他考量因素。這樣既優(yōu)化了用戶體驗(yàn),也提高了商業(yè)效率。
復(fù)雜的排序方式,比如按照“相關(guān)度打分”算法排序,是根據(jù)文本的匹配度,對(duì)不同的搜索結(jié)果進(jìn)行打分。讓相關(guān)度更高的搜索結(jié)果,分?jǐn)?shù)就越高。例如在 Elastic search 的全文搜索中,默認(rèn)根據(jù) BM25 算法來(lái)計(jì)算文本相關(guān)度,根據(jù)文本匹配度來(lái)排序。
基于相關(guān)度算法,不同的實(shí)體之間的相關(guān)度對(duì)打分的影響,也是可以調(diào)節(jié)的。
在之前的海外 O2O2 交易平臺(tái)中,當(dāng)分詞命中了實(shí)體詞庫(kù)后,我們會(huì)適當(dāng)提高提高實(shí)體打分的權(quán)重。
例如我在大眾點(diǎn)評(píng)中,搜索“珠江新城”這個(gè)詞時(shí),如果只考慮店鋪的名稱,那么名稱里含有“珠江新城”的搜索結(jié)果會(huì)排在前面,比如“XXX(珠江新城店)”,但這并不是用戶希望看到的,所以此時(shí)應(yīng)該提高“商圈”的實(shí)體在打分排序中的權(quán)重。相應(yīng)地,在搜索結(jié)果中,會(huì)優(yōu)先展示珠江新城商圈、咖啡廳的餐廳類型,咖啡的食物分類的搜索結(jié)果。至于提高多少,就需要根據(jù)實(shí)際情況來(lái)調(diào)優(yōu)了。
3. 結(jié)果展示
通過(guò)搜索,拿到數(shù)據(jù)后,最后一步就是搜索結(jié)果的展示了。也就是大家搜索后看到的頁(yè)面。各個(gè)應(yīng)用可以根據(jù)自己的業(yè)務(wù)特點(diǎn),設(shè)計(jì)對(duì)應(yīng)的展示樣式。
在設(shè)計(jì)時(shí)需要考慮的是:
1)數(shù)據(jù)的展現(xiàn)樣式
例如在淘寶搜索不同商品時(shí),展示的方式不一樣的,有的雙列瀑布流,有的是通欄的列表。
例如在微信中,搜索不同的內(nèi)容,文章、視頻號(hào)、表情、百科等的展現(xiàn)形式都是不同的。
2)展示每一個(gè)搜索結(jié)果的哪些信息
例如在大眾點(diǎn)評(píng)中,每一個(gè)搜索結(jié)果都包含標(biāo)題、圖片、評(píng)價(jià)、地理位置、距離、商圈、用戶評(píng)價(jià)、是否有套餐等等信息。產(chǎn)品設(shè)計(jì)是應(yīng)該思考的是如何設(shè)計(jì)一個(gè)卡片的展示,在提供用戶想要的消費(fèi)決策信息的同時(shí),保證頁(yè)面的簡(jiǎn)潔美觀,提高搜索的有效性。
4. 其他搜索相關(guān)的產(chǎn)品設(shè)計(jì)
還有一些其他的搜索產(chǎn)品設(shè)計(jì),這里也簡(jiǎn)單講一講。
1)搜索聯(lián)想詞
例如在淘寶的搜索框輸入詞語(yǔ)時(shí),他會(huì)自動(dòng)聯(lián)想你想搜索的結(jié)果。
搜索聯(lián)想詞的實(shí)現(xiàn)方式,是將平臺(tái)中常見(jiàn)的搜索詞作為一個(gè)庫(kù),當(dāng)輸入文本時(shí),就通過(guò)前綴匹配來(lái)獲取數(shù)據(jù),再根據(jù)搜索頻次等其他數(shù)據(jù)排序,展示成列表。
2)熱搜詞
熱搜詞、或這是熱搜榜單,出現(xiàn)在搜索頁(yè)。
主要目標(biāo)群體是給不知道要搜索什么的用戶提供一些熱門的搜索項(xiàng)。
3)特殊的結(jié)果樣式
例如在淘寶中搜索店鋪名的時(shí)候,店鋪會(huì)以一個(gè)特殊的卡片樣式出現(xiàn)在頂部。
在信息流中,還可以插入廣告,插入其他內(nèi)容等等。例如,在淘寶搜索商品時(shí),商品流中會(huì)穿插著廣告、搜索建議、用戶調(diào)研、榜單、內(nèi)容推薦等等。
4)排序方式和篩選
排序方式和篩選通常是放在一起將的,但在【搜索】部分已經(jīng)提及,不再贅述。
而篩選方式,是提供用戶主動(dòng)選擇的,幫助自己快速定位信息的工具。根據(jù)不同的也誰(shuí),篩選項(xiàng)會(huì)有很多。
舉個(gè)例子:
- 貝殼找房搜索的篩選器:可以根據(jù)行政區(qū)域,地鐵站、地標(biāo)、整租/合租、租金范圍,活動(dòng),樓層,設(shè)施等等來(lái)進(jìn)行篩選;
- 淘寶搜索的篩選器:可以根據(jù)折扣類型,價(jià)格區(qū)間,發(fā)貨地,店鋪所在城市等等進(jìn)行篩選。
篩選器的設(shè)計(jì)也都大同小異,許多交互已經(jīng)標(biāo)準(zhǔn)化了。
四、結(jié)語(yǔ)
總結(jié)一下,這篇文章主要介紹了站內(nèi)搜索的基本原理、相關(guān)設(shè)計(jì)和優(yōu)化方法。當(dāng)用戶輸入一個(gè)關(guān)鍵詞后,要經(jīng)過(guò)文本分析后,進(jìn)入搜索服務(wù)。搜索服務(wù)處理后,返回的搜索結(jié)果,前端再根據(jù)合適的展現(xiàn)方案展示,這是搜索的基本流程。除此之外,還介紹了一些搜索相關(guān)的產(chǎn)品設(shè)計(jì)、熱搜詞聯(lián)想詞等等。
這篇文章可以算是搜索產(chǎn)品的基礎(chǔ),了解這些可以幫助更好地理解搜索技術(shù)。
文章不足之處,主要在于對(duì)于人工干預(yù)搜索的部分,沒(méi)有很好的展現(xiàn)。大多數(shù)產(chǎn)品都會(huì)做自己的搜索后臺(tái),用于讓搜索運(yùn)營(yíng)處理無(wú)結(jié)果搜索結(jié)果優(yōu)化,同義詞識(shí)別,敏感詞維護(hù)等等。這些內(nèi)容,后續(xù)有機(jī)會(huì)再分享。
對(duì)于互聯(lián)網(wǎng)產(chǎn)品,無(wú)論在電商平臺(tái)還是內(nèi)容平臺(tái),搜索都是用戶高頻使用的,尋找信息的方式。在日常生活中,搜索也是我們高頻使用的。
如果覺(jué)得這篇文章對(duì)你有幫助,求關(guān)注轉(zhuǎn)發(fā)點(diǎn)贊~
本文由 @潦草學(xué)者 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒(méi)評(píng)論,等你發(fā)揮!