日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我們常說阿里的運(yùn)營,騰訊的產(chǎn)品,百度的技術(shù)。這背后是對百度技術(shù)的肯定,我們都知道,百度是靠搜索引擎起家,搜索引擎與電商與社交產(chǎn)品有明顯的區(qū)別,有著非常強(qiáng)的技術(shù)驅(qū)動性。今天我們就來學(xué)習(xí)學(xué)習(xí),搜索引擎大致是怎么組成的,背后的算法與數(shù)據(jù)結(jié)構(gòu)是怎么樣的,作為一個程序員,我們能否實(shí)現(xiàn)自己簡單的搜索引擎呢?

一個經(jīng)典的搜索引擎,無論是谷歌、百度、微信的搜一搜還是淘寶的搜索,都離不開下面這這個基本過程,收集、分析、索引、查詢。我們今天一個一個來介紹這背后的經(jīng)典算法與數(shù)據(jù)結(jié)構(gòu)。

 

 

 

收集

首先是收集,最常見的便是爬蟲,從各個網(wǎng)站中爬取對應(yīng)的資料,根據(jù)網(wǎng)站的爬取順序,我們常常有深度優(yōu)先搜索,廣度優(yōu)先搜索等不同的爬取策略,為了避免爬取重復(fù)的網(wǎng)站,我們可能需要對網(wǎng)站的地址進(jìn)行判重,常用的,我們可以使用布隆過濾器,可以做到非常高效的網(wǎng)站去重。當(dāng)然,現(xiàn)在有一些搜索引擎也是不需要爬蟲的,像淘寶的商品搜索,商家每發(fā)布新的產(chǎn)品,或者用戶發(fā)表新的評論,都會發(fā)布異步的消息隊(duì)列,由搜索引擎訂閱并收集。那么多的基礎(chǔ)元數(shù)據(jù),我們通常需要給他們一個編號,有人說可以用MySQL存儲,用自增主鍵id,那樣一個表會非常大,要知道,網(wǎng)絡(luò)上的網(wǎng)頁何止千千萬萬,我們通常采用NoSql進(jìn)行存儲,同時我們也需要ID生成分配器,給每一個資源一個獨(dú)立的ID。

分析

程序員們都知道,在網(wǎng)頁上我們雖然能看到豐富多彩的文案與圖片,背后都是html格式的代碼,我們需要去掉這些格式,才能獲取到真實(shí)的文本。那么,如何在一個HTML文件中,去掉各種標(biāo)簽?zāi)兀孔詈唵蔚模闶俏谋酒ヅ洌瑸榱思涌炱ヅ涞乃俣龋ǔN覀儠S肁C自動機(jī)等多模文本匹配算法進(jìn)行優(yōu)化,可以快速的去掉HTML頁面上的各種標(biāo)簽。

索引

那么多的網(wǎng)頁,我們查詢的時候,不可能每一個網(wǎng)頁都去遍歷,找到是否包含這個關(guān)鍵字。通常,我們采用的一個技術(shù),便是倒排索引,什么是倒排索引的,最簡單來說,就是記錄每一個單詞,在哪里出現(xiàn)過。舉個簡單例子,文章1的內(nèi)容包含了“我和我的祖國,一刻都不能分割”,文章2的內(nèi)容包含了“祝偉大祖國70周年生日快樂,繁榮富強(qiáng)”,文章3包含了“國慶節(jié)要放假了,程序員可以休息了”。那么,單詞“祖國”的倒排索引上面就會有1,2表示,在第1,2號文章上出現(xiàn)過,單詞“程序員”的倒排索引是3,表示在第3號文件出現(xiàn)過。

算法與數(shù)據(jù)結(jié)構(gòu)之美,搜索引擎中的算法與數(shù)據(jù)結(jié)構(gòu)你知多少?

 

查詢

當(dāng)我們用關(guān)鍵字進(jìn)行查詢的時候,我們首先去索引上面查詢這個單詞在哪些文章上面出現(xiàn)過。緊接著,便是排序,排序是搜索引擎一個非常牛逼的技術(shù),那么多的文章,一個關(guān)鍵字可能包含了幾百萬的文章,怎么進(jìn)行排序的呢?有幾種非常簡單的方法,例如關(guān)鍵詞出現(xiàn)的次數(shù),越多說明權(quán)重越高,或者是創(chuàng)建的時間,越新權(quán)重越高,當(dāng)然也有一些其他的排序方法,例如競價等等。

現(xiàn)代的搜索引擎,一般還會用AI進(jìn)行武裝,我們一般用深度學(xué)習(xí),對搜索結(jié)果去建立神經(jīng)網(wǎng)絡(luò),如果用戶點(diǎn)擊了,就說明搜索出來的結(jié)果用戶更喜歡,從而達(dá)到不斷訓(xùn)練,越來越聰明的作用。

算法與數(shù)據(jù)結(jié)構(gòu)之美,搜索引擎中的算法與數(shù)據(jù)結(jié)構(gòu)你知多少?

 

總結(jié)

好了,今天我們就分享到這里,有興趣的程序員同學(xué),可以嘗試自己實(shí)現(xiàn)一個簡單的搜索引擎。相信你會對其中的算法與數(shù)據(jù)結(jié)構(gòu)有更深一步的認(rèn)識。歡迎大家關(guān)注我,共同學(xué)習(xí),共同進(jìn)步。大家的支持是我繼續(xù)嘮嗑的動力。同名公眾號(沙茶敏碎碎念)

分享到:
標(biāo)簽:搜索引擎
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定