- 自己動手寫分布式搜索引擎
- 羅剛
- 345字
- 2020-11-28 15:52:46
3.2.7 索引的優化與合并
在完成了創建最終倒排文件和詞典后,全部倒排索引文件的創建工作完畢。從某種角度上看,這些都是一種預先計算(PreComputation)。這種預先計算都是為了節省查詢時間,對海量數據完成一次最終倒排索引文件的制作是非常耗時的,這些盡可能預先完成的計算為查詢爭取了寶貴時間。優化索引很耗時,但索引優化后,查詢速度快。
在優化索引階段,大約需要索引大小2倍的臨時空間。因此需要大約400GB的硬盤來容納200GB的索引。
索引很多文檔的過程通常比較慢。為了加快索引速度,可以多臺機器同時索引不同內容,然后合并。要合并的幾個不同的索引結構要一致。下面的程序可以把多個目錄下的索引合并到一個目錄下。
IndexWriter writer = new IndexWriter(args[0], null, true); writer.setMergeFactor(50); //參數越大,用到的內存越多。影響內存的使用 //影響索引文件的數量 writer.setUseCompoundFile(false); Directory[] dirs = new Directory[args.length -1]; System.out.println("begin :"+args[0]); for (int i=1 ; i<args.length; i++) { dirs[i-1]= FSDirectory.getDirectory( args[i], false); if (dirs[i-1]==null) System.out.println("Directory is null:"+i); } writer.addIndexes(dirs); writer.close();
推薦閱讀
- PS是這樣玩的:輕松掌握 Photoshop 通關秘籍
- ERP沙盤模擬教程
- AutoCAD 2019中文版從入門到精通
- Python Text Processing with NLTK 2.0 Cookbook: LITE
- 老郵差數碼照片處理技法 圖層篇
- Android User Interface Development: Beginner's Guide
- Blender 2.5 Materials and Textures Cookbook
- 零基礎學會聲會影2018(全視頻教學版)
- SVG動畫
- AI繪畫基礎與商業實戰
- Apache CXF Web Service Development
- Inkscape Starter (Microcontent)
- Autodesk Maya 2015標準教材II
- After Effects影視特效與電視欄目包裝實例精粹
- SPSS統計分析從入門到精通