第14章推特搜索系統(tǒng)設(shè)計_第1頁
第14章推特搜索系統(tǒng)設(shè)計_第2頁
第14章推特搜索系統(tǒng)設(shè)計_第3頁
第14章推特搜索系統(tǒng)設(shè)計_第4頁
第14章推特搜索系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

udy322SearchSyste歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第1KeywordsVX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第2Scenario:System相關(guān)場景介紹歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第3

日活躍用戶

每天新發(fā)布tweet

送次

每天處理搜索15億次VX:study322 平均每秒的搜索17K次歸屬于九章算法(杭州)科 盜版將 刑事責(zé)第4KeywordSearcVX:study322

RelevanceFacets歸屬于九章算法(杭州)

盜版將

刑事責(zé) 第5VXstdy2其他均為翻 歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第6ServiceVX:study322Index

Search

Ranking歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第732歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第8整 架4241文 系統(tǒng) 1VX:study322自主開發(fā)了一個低成Redis集群主要用于緩存

本和可擴展的系統(tǒng)Blobstore

Hadoop集群主要用于數(shù)據(jù)處理、分

MySQL持久化 關(guān)系型數(shù)據(jù)數(shù)據(jù),大約有四萬個結(jié)點

要 等大數(shù)據(jù)

析日志記錄、大約有一萬個文件,大約 結(jié)四萬個結(jié)點歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第9

VX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第10最開始的時 并沒有開發(fā)自己的搜索引擎,而使用Mysql數(shù)據(jù)庫自帶的搜在MySQL數(shù)據(jù)庫里 基于時間做了index,分成了多個Timeslicetable歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第11tweets32 歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第12search團隊使用Lucene這個開源庫開發(fā)了EarlybirdVX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第13searchVX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第14search關(guān)系型數(shù)據(jù)庫(MySQL)VX:study322非關(guān)系型數(shù)據(jù)庫(Redis)C.文件系統(tǒng)(HDFS)歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第15searchVX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第16 01單獨的結(jié)構(gòu)02指向了具體內(nèi)容的位置VX:study32203加速了對書籍內(nèi)容的查找04有些內(nèi)容無法放到書籍里05書變厚了。。。歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第17Inverted1231231123 223233 歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第18Inverted倒排索引結(jié)構(gòu)是根據(jù)內(nèi)容(詞語)找文檔,倒排索引結(jié)構(gòu)也叫反向索引結(jié)構(gòu),包括索引和文檔兩部分,索引即詞匯表,它是在索引中匹配搜索關(guān)鍵字,由于索引內(nèi)容量有限并且采用固定優(yōu)化算法搜索速度很快,找到了索引中的詞匯,詞匯與文檔關(guān)聯(lián),從而最終找到了文檔。01udy01建立索引對文檔進行切分詞組成索引02搜索時,根據(jù)關(guān)鍵字( ),找到資源的位置02歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第19分詞器(Tokenizer)

VX:study322其他均為翻錄倒,切分詞:就是將一段文本,根據(jù)一定的規(guī)則,拆分成一個一個詞將一句一句話切分成一個一個詞,去掉(a antheandor)等無意義的詞,空格,標點符號,重復(fù)的詞大寫字母轉(zhuǎn)為小寫字母歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第20對搜索結(jié)果

study322一 搜索排序策略二 設(shè)計歸屬于九章算法(杭州)科

盜版將

刑事責(zé) 第21VXs的 。歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第22推文熱度值社交關(guān)系VX:study322推文熱度值社交關(guān)系點贊數(shù)、收藏數(shù)、評論數(shù)、熱度值= 點贊數(shù)+收藏數(shù)+評論數(shù)+閱讀數(shù)

是否是你關(guān)是否是大V

人氣數(shù)=熱度+社交關(guān)系+時效性 時候?qū)⒂嬎愠鰜淼摹叭藲鈹?shù)”和索引一起 ,在搜索時根據(jù)人氣數(shù)對搜索結(jié)果排序歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第23TweetTable varcharuser_id varcharcontent :stutyt2create_time timestamplikes long

UserTable user_id varcharuser_name varchar varcharforwarding_timescommen

longlong

is_superstart

boolean歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第24

秒殺系統(tǒng)VX:study322

老學(xué)員私教:95折券:C42E8B 信小佳娃(●'?'●)法(杭州)科 盜版將 刑事責(zé)

第25 歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第26用戶發(fā)布的新tweets會被發(fā)送到分詞服務(wù)器里面。在這里tweets的文本被分詞按照hash分割,tweets被分發(fā)到各個Earlybird(索引服務(wù)器)上,每個Earlybird(索引服務(wù)器)負責(zé)一部分數(shù)據(jù),將tweets實時地建立索引同時,另外有個一個更新服務(wù),它推送tweets的動態(tài)變化信息(例:點贊次數(shù),轉(zhuǎn)發(fā)次數(shù)),動態(tài)地更新VX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第270 0 03搜索請求

執(zhí)行計算

返回結(jié)果VX:study322用戶搜索請求搜先到達Blender(搜索前端服務(wù)器),Blender解析請求

Earlybird服務(wù)執(zhí)行相關(guān)性計算并排序。并將排序好的tweet列表返回給Blender。

Blender合并各個Earlybird返回的列排序(Reranking),歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第28VX:study322用了一個非常巧妙的方法就是保存2%熱度最高最可能被檢索的tweets在內(nèi)存中,并且保存了16tweets在SSD硬盤。歸屬于九章算法(杭州)科 盜版將

刑事責(zé) 第29VX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第30聚合:基于TweetID 分 VX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第31唯一的V:sud32t均為翻賣歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第32&傳統(tǒng)方式時間戳+N位隨機數(shù)這種方法在分布式系統(tǒng)內(nèi)會產(chǎn)生ID碰撞。UUID

雪花算法(Snowflake)雪花算法 的分布式自增ID算法,經(jīng)測試SnowFlake每秒可以產(chǎn)生26萬個自增可VX:study32的SnowFlake生成ID能夠按照時間入數(shù)據(jù)庫性能差,因為UUID無序的。

有序生成。在分布式系統(tǒng)內(nèi)不會產(chǎn)生ID碰撞( enter和WorkerID做區(qū)分)并且效率較歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第33Snowflake 的同學(xué)可以參考現(xiàn)有的開源實Scale版詳見開源項目 開源版本VX:study322Java歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第34SnowflakeVX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第35 VX?歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第36 VX:study322歸屬于九章算法(杭州)科 盜版將

刑事責(zé) 第37 支持范圍查找, 格區(qū)間范圍搜索格、發(fā)貨地X屬性study322其他均為翻錄倒賣

歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第38 Elasticsearch(ES),ES構(gòu)建在開源社區(qū)最穩(wěn)定成 引庫Lucence上。VX:study322 支持還實現(xiàn)了ES與MySQL和Hadoop的無縫集歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第39VX:study322kafka 在HDFS歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第40ES-Hadoop(ElasticsearchforApacheHadoop):ES和Hadoop兩HadoopHadoop

VX:study322 可以把HDFS的數(shù)據(jù)導(dǎo)入到ES里面做分析,也可以將ES數(shù)據(jù)導(dǎo)出到HDFS上做備份歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第41主流的搜索引擎對比LuceneSolr

VX:study322Elasticsearch:使用ES做代碼搜索百科使用ES做詞條搜索

01 0203歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第42Scale32歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第43熱度值=點贊VX:study322其他為+評論數(shù)+閱讀

這種高并發(fā)實計算的 榜,db不適合,db扛不住這么大的并發(fā)量,并發(fā)實時的 榜然適合用緩存來實歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第44Redis有序集合SortedSetSortedSetscore來從大到小排序。其可以排序的特點,可以應(yīng)用 是一個member,每 的熱度值是一個scoreVX:study322Zadd命令:zaddkeyvalue1member1zrevrangekey starten歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第45VX:study322歸屬于九章算法(杭州)科 盜版將 刑事責(zé) 第46

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論