<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SF1R海量數(shù)據(jù)引擎

          聯(lián)合創(chuàng)作 · 2023-09-19 02:36

          什么是SF1R

          SF1R是一個分布式的存儲搜索一體化海量數(shù)據(jù)引擎。SF1R來自于iZENECloud團(tuán)隊多年的 研發(fā)成果,并且已經(jīng)在商業(yè)網(wǎng)站上經(jīng)受住了嚴(yán)苛的考驗。2014年,iZENECloud團(tuán)隊把SF1R 開放給社區(qū),采用Apache License 2,希望共同改進(jìn)和維護(hù)。

          Note

          SF1R的全稱是Search Formula 1 Revolution,SF1R是iZENECloud團(tuán)隊給搜索引擎項目使用的內(nèi)部代號。

          SF1R的歷史和特色

          SF1R是一個存在多年的項目,完全基于C++語言開發(fā),最新的master分支已經(jīng)可以用 C++ 11編譯。SF1R在早期開發(fā)時,參考了流行的Lucene的索引設(shè)計,并進(jìn)行了若干改進(jìn), 這里邊包括實時索引,以及更好的壓縮手段如PForDelta以及NewPFor。然而在使用過程 中,我們發(fā)現(xiàn)Lucene這種完全基于文件的索引應(yīng)對高并發(fā)和低延遲方面不具有優(yōu)勢,鑒于 絕大多數(shù)大規(guī)模搜索引擎的索引均完全放置于內(nèi)存中,iZENECloud團(tuán)隊又給SF1R添加了 兩種索引Zambezi和Suffix,這2種索引均是業(yè)界最佳的設(shè)計,大大提升了SF1R的性能, 在后邊將分別提到。iZENECloud團(tuán)隊在根據(jù)需求不斷調(diào)整SF1R的過程中,給SF1R添加了眾 多的功能,包括各種數(shù)據(jù)挖掘特性,以及集成了推薦引擎,使之成為一個龐大的搜索,存儲, 推薦,挖掘一體化引擎,項目也因此變得臃腫不堪。因此,在2014年,iZENECloud團(tuán)隊針對 老版本的SF1R進(jìn)行了大量裁剪,把不需要的數(shù)據(jù)挖掘,以及推薦引擎都從項目里刪除,只留下 搜索和存儲,這就是SF1R-Lite項目,感興趣的朋友可以從提交歷史里恢復(fù)這些裁剪。

          為什么采用SF1R

          社區(qū)目前絕大多數(shù)應(yīng)用都已經(jīng)采用Lucene,以及基于Lucene的一系列搜索解決方案比如Solr 和ElasticSearch,這些搜索方案經(jīng)過十多年很多人的改進(jìn),在通用化方面已經(jīng)非常優(yōu)秀。那么 基于此,為什么還要再采用新的搜索方案呢? 這里邊有3個原因:首先,基于Java的搜索方案, 在面臨高壓力場景時,由于GC的存在而時常有延遲抖動發(fā)生,SF1R在實際應(yīng)用中,可以做到跑滿 全部CPU(例如16核),并且7*24不間歇的運(yùn)轉(zhuǎn)而沒有上述抖動;其次,SF1R采用的2種內(nèi)存索引, 在性能上遠(yuǎn)高于常規(guī)方案,更能滿足對性能要求苛刻的應(yīng)用,在實際應(yīng)用中,SF1R曾經(jīng)在單一節(jié)點 上部署和索引了上億文檔,仍然提供快速響應(yīng);第三,SF1R是一個完整的服務(wù)端引擎,可以方便的 對索引和其他功能進(jìn)行擴(kuò)展。相比Lucene社區(qū)的龐大代碼倉庫,SF1R的項目要精簡得多,因此更加 便于針對特定場景進(jìn)行修改和維護(hù),這從SF1R支持3種索引結(jié)構(gòu)就可以看出,此外,針對廣告檢索, SF1R也可以方便擴(kuò)充第4種索引,這些都是傳統(tǒng)搜索解決方案Lucene不具備的。

          Zambezi索引

          Zambezi索引來自于 Zambezi 項目,索引的原理可以參考相關(guān)的論文,這是傳統(tǒng)倒排索引結(jié)構(gòu)里的最佳設(shè)計之一,因為它可以做到在 提供實時搜索的功能下不損失查詢性能,因此非常適合作為Twitter或者微博搜索服務(wù)。在引入Zambezi 到SF1R的過程中,iZENECloud團(tuán)隊又進(jìn)行了若干改進(jìn),這里邊包含:原始Zambezi索引完全為Twitter 類查詢服務(wù),因此,對于不常見的詞(比如在少于128個文檔里出現(xiàn)),原始設(shè)計進(jìn)行了剪枝,既無法在 索引中搜索到。iZENECloud團(tuán)隊的改進(jìn)去掉了這種限制;此外,iZENECloud團(tuán)隊還引入了一些最新的索引 壓縮技術(shù)并且加以改進(jìn),比如 SIMD intersection ,使之具備最高速的解壓方案。

          Suffix索引

          Suffix索引采用了罕見的Succinct Self Index結(jié)構(gòu),基礎(chǔ)設(shè)施是Suffix Array和Wavelet Tree, 具備完全不同于倒排索引的結(jié)構(gòu),相關(guān)的原理可以參見SF1R的技術(shù)報告。Suffix索引具備遠(yuǎn)高于傳統(tǒng)索引的查詢性能,缺點是構(gòu)建的時候需要占用大量內(nèi)存,并且無法支持增量。

          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精成人品 | 婷婷五月天在线无码 | 操逼精品 | 日韩AV手机版 | 亚洲欧美最大色情网站 |