<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    csusky

    常用鏈接

    統計

    最新評論

    關于IndexWriter中的3個性能參數

    IndexWriter中有3個重要的性能參數
    mergeFactor           默認為10
    minMergeDocs      默認為10
    maxMergeDocs     默認為Integer.maxValue

    maxMergeDocs     一個段中所能包含的最大的doc數,達到這個數目即不再將段進行合并 一般不改變這個值
    minMergeDocs      是指在RAMDirectory中保存的Doc的個數,達到minMergeDocs 個即要合并到硬盤上去(在硬盤上新建一個段)
    mergeFactor           合并因子,是控制硬盤上的段的合并的,每次在硬盤上新建一個段之后即執行
                                     targetMergeDocs*=mergeFactor(一開始targetMergeDocs=minMergeDocs) 如果硬盤上的doc數目大于等于                            targetMergeDocs則將硬盤上最后建立的mergeFactor個段進行合并成一個段

    拿默認的參數舉例:
    如果硬盤上面已經有9個段  每個段分別存儲了10個Document,共(90個DOC),這時候如果程序再向硬盤合并一個新的段(含10個DOC),合并完之后targetMergeDocs=10*10  程序檢查已經合并的最后(按照創建的時間先后順序)mergeFactor個段的document的總和100是否大于等于targetMergeDocs(這里是100,剛好滿足要求)于是程序又將硬盤上面的后10個段合并為一個新的段。

    另外一個例子:
    doc數目            段數目
      1000---------------9個
      100-----------------9個
      10   ----------------9個
    這時如果再象硬盤中新建一個新的包含了10個doc的段
        doc數目            段數目
      (1) 1000----------------9個

      (2)  100-----------------9個

      (3)   10  ----------------9個
                                         
      (4)    10 ----------------1個
    這時候(3)(4)首先合并成一個新的段(3-4)包含100個doc
     然后(2)(3-4)和并成一個新段(2-3-4)包含1000個doc
    然后(1)(2-3-4)合并成一個新的段  包含10000個doc
    最后合并成一個段


    private final void maybeMergeSegments() throws IOException {
        
    long targetMergeDocs = minMergeDocs;
        
    while (targetMergeDocs <= maxMergeDocs) {
          
    // find segments smaller than current target size
          int minSegment = segmentInfos.size();
          
    int mergeDocs = 0;
          
    while (--minSegment >= 0{
            SegmentInfo si 
    = segmentInfos.info(minSegment);
            
    if (si.docCount >= targetMergeDocs)
              
    break;
            mergeDocs 
    += si.docCount;
          }


          
    if (mergeDocs >= targetMergeDocs)          // found a merge to do
            mergeSegments(minSegment+1);
          
    else
            
    break;

          targetMergeDocs 
    *= mergeFactor;        // increase target size
          System.out.println("- -- - -targetMergeDocs:"+targetMergeDocs);
          
    try {Thread.sleep(5000);} catch(Exception e) {};
        }

      }

    posted on 2008-05-15 19:27 曉宇 閱讀(1431) 評論(0)  編輯  收藏 所屬分類: LUCENE

    主站蜘蛛池模板: 成年女人色毛片免费看| 亚洲国产91在线| 国产精品免费看香蕉| 120秒男女动态视频免费| a级毛片免费观看在线| 国产亚洲精品免费| 中文字幕亚洲情99在线| 亚洲成人福利在线| 亚洲91av视频| 亚洲AV无码专区在线播放中文| 亚洲免费日韩无码系列| 黄a大片av永久免费| 成年女人毛片免费播放人| 最近2019中文字幕免费直播| 国产精品免费高清在线观看| 国产美女视频免费观看的网站| 黄色网址在线免费观看| 在线观看国产一区亚洲bd| 亚洲色无码专区一区| 亚洲综合偷自成人网第页色| 亚洲男人电影天堂| 亚洲精品国产专区91在线| 亚洲天堂在线播放| 亚洲网站在线观看| 亚洲美女精品视频| 亚洲理论片在线观看| 亚洲日本乱码一区二区在线二产线 | 亚欧人成精品免费观看| 37pao成人国产永久免费视频 | 亚洲成色WWW久久网站| 亚洲色精品aⅴ一区区三区| 中文字幕亚洲激情| 国产亚洲精品自在久久| 亚洲精品中文字幕乱码三区| 亚洲精品~无码抽插| 久久亚洲一区二区| 91在线亚洲精品专区| 亚洲一区二区影视| 亚洲色偷偷色噜噜狠狠99网| 亚洲AV无码之国产精品| 九九久久国产精品免费热6|