Iveely搜索引擎二三题,用你的智慧来解决吧!
? ? ? 今天晚上整理了兩道比較簡(jiǎn)單關(guān)于搜索引擎的題目,所有題均是Iveely搜索引擎中遇到的,與大家分享你的智慧吧!都不難,但是希望能夠找到一種最佳的解決辦法。
問(wèn)題一:?
? ? ?背景介紹:
在用戶搜索的過(guò)程中,我們會(huì)將用戶的關(guān)鍵字進(jìn)行切分后,然后進(jìn)行匹配。例如:用戶輸入“程序人生”,分詞后會(huì)得到"程序"、“人生”,我們已經(jīng)可以通過(guò)時(shí)間復(fù)雜度為0(1)的方式提取出“程序”對(duì)應(yīng)的網(wǎng)頁(yè)集合(9.00235,123.00691,96.00035...),以及"人生"對(duì)應(yīng)的網(wǎng)頁(yè)集合(6.00025,123.00128,95.00245...),其中 ?整數(shù)部分是網(wǎng)頁(yè)編號(hào),小數(shù)部分是該關(guān)鍵字在該網(wǎng)頁(yè)下的實(shí)際權(quán)值(價(jià)值),下一步,我們將合并“程序”,“人生”的網(wǎng)頁(yè)集合,然后反饋給用戶。? ? ?問(wèn)題產(chǎn)生:在合并的過(guò)程中,可能會(huì)遇到相同的網(wǎng)頁(yè),那么遇到相同網(wǎng)頁(yè)的時(shí)候,我們將小數(shù)部分相加,整數(shù)部分不變,若小數(shù)部分累加后大于1則,全體集合中的小數(shù) 部分乘以0.1,然后繼續(xù)累加。需解決的問(wèn)題:請(qǐng)?jiān)O(shè)計(jì)一個(gè)數(shù)據(jù)結(jié)構(gòu),能夠在盡可能廉價(jià)的時(shí)間復(fù)雜度和空間復(fù)雜度下解決上面問(wèn)題。? ??
問(wèn)題二:?
? ? ?背景介紹:
? ? ?搜索引擎中,每一個(gè)關(guān)鍵字都對(duì)應(yīng)了無(wú)數(shù)張網(wǎng)頁(yè),每一張網(wǎng)頁(yè)都對(duì)應(yīng)著若干的關(guān)鍵字,搜索引擎在獲取到關(guān)鍵字后,一定要在盡可能快的時(shí)間內(nèi)獲取出擁有該 關(guān)鍵字的網(wǎng)頁(yè)集合,目前最常用的做法是倒排序,然而倒排序文件中,雖然能夠很快的提取出網(wǎng)頁(yè)的關(guān)鍵字,但是網(wǎng)頁(yè)的權(quán)重卻不定相同。也就是到排文件的結(jié)構(gòu)是無(wú)序的。
? ? ?
?
? ? ? 下面我們把問(wèn)題抽象為北京地鐵站信息,每一個(gè)站點(diǎn)都是關(guān)鍵字,每一條線路都是網(wǎng)頁(yè)。每一個(gè)站點(diǎn)被多條線路包含(每一個(gè)關(guān)鍵字被若干網(wǎng)頁(yè)包含),每一 條線路包含多個(gè)站點(diǎn)(每一張網(wǎng)頁(yè)包含多個(gè)關(guān)鍵字)。
? ? ??問(wèn)題的產(chǎn)生:?
? ? ? 倒排文件已經(jīng)讓我們可以很快的提取出站點(diǎn)對(duì)應(yīng)的線路,但是遺憾的是,例如:用戶搜索西直門(mén),那么將返回地鐵2號(hào)線,地鐵4號(hào)線以及地鐵13號(hào)線。然而,地鐵4號(hào)線和地鐵2號(hào)線又有另外一個(gè)交集站點(diǎn):宣武門(mén)。我們?yōu)槭裁葱枰佬溟T(mén)呢?因?yàn)樵贗veely的設(shè)計(jì)當(dāng)中,認(rèn)為:當(dāng)搜索結(jié)果中的交集 站點(diǎn)越集中,當(dāng)達(dá)到一個(gè)程度時(shí),這個(gè)站點(diǎn)也可能是用戶比較感興趣的站點(diǎn)(數(shù)學(xué)證明:略),例如上圖中,若用戶換乘地鐵時(shí),可能是想在西直門(mén)換乘地鐵,如果結(jié)果中的地鐵線路集合中包含宣武門(mén)的也很多,那么我們假設(shè)宣武門(mén)也可以是一個(gè)很好的換乘地鐵方案。
? ? ? 需要解決的問(wèn)題:
? ? ? 請(qǐng)?jiān)O(shè)計(jì)一種數(shù)據(jù)結(jié)構(gòu),在盡可能廉價(jià)的時(shí)間復(fù)雜度和空間復(fù)雜度下,計(jì)算出,搜索結(jié)果中包含相同站點(diǎn)的排序集合(按照出現(xiàn)的結(jié)果中包含的次數(shù))。最簡(jiǎn)單的例如:輸入西直門(mén),可以返回推薦宣武門(mén),如果還有包含的站點(diǎn)依次按照出現(xiàn)次數(shù)列出。
? ? ? 以上題目是我自己擬出來(lái)的,是我在開(kāi)源Iveely過(guò)程中遇到的問(wèn)題,我想這是比較有意義的題目,因?yàn)椴粌H僅是我們的思維,還有我們code技術(shù),當(dāng)然最重要的是我們的數(shù)學(xué),陸續(xù)我也會(huì)將其它類似的問(wèn)題發(fā)出來(lái),讓大家一起探討,學(xué)習(xí),歡迎您對(duì)Iveely搜索引擎的關(guān)注,如果您有什么好的意見(jiàn)或建議,可以郵件liufanping@iveely.com 或微薄聯(lián)系我。?
?
轉(zhuǎn)載于:https://www.cnblogs.com/liufanping/archive/2012/09/18/2691427.html
總結(jié)
以上是生活随笔為你收集整理的Iveely搜索引擎二三题,用你的智慧来解决吧!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: poj1426_模拟BFS
- 下一篇: 探秘大型B2C网站如何实现高性能可伸缩架