亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mergepolicy.java

?? lucene-2.4.0 是一個全文收索的工具包
?? JAVA
字號:
package org.apache.lucene.index;/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import org.apache.lucene.store.Directory;import java.io.IOException;import java.util.List;import java.util.ArrayList;import java.util.Set;/** * <p>Expert: a MergePolicy determines the sequence of * primitive merge operations to be used for overall merge * and optimize operations.</p> *  * <p>Whenever the segments in an index have been altered by * {@link IndexWriter}, either the addition of a newly * flushed segment, addition of many segments from * addIndexes* calls, or a previous merge that may now need * to cascade, {@link IndexWriter} invokes {@link * #findMerges} to give the MergePolicy a chance to pick * merges that are now required.  This method returns a * {@link MergeSpecification} instance describing the set of * merges that should be done, or null if no merges are * necessary.  When IndexWriter.optimize is called, it calls * {@link #findMergesForOptimize} and the MergePolicy should * then return the necessary merges.</p> * * <p>Note that the policy can return more than one merge at * a time.  In this case, if the writer is using {@link * SerialMergeScheduler}, the merges will be run * sequentially but if it is using {@link * ConcurrentMergeScheduler} they will be run concurrently.</p> *  * <p>The default MergePolicy is {@link * LogByteSizeMergePolicy}.</p> * <p><b>NOTE:</b> This API is new and still experimental * (subject to change suddenly in the next release)</p> */public abstract class MergePolicy {  /** OneMerge provides the information necessary to perform   *  an individual primitive merge operation, resulting in   *  a single new segment.  The merge spec includes the   *  subset of segments to be merged as well as whether the   *  new segment should use the compound file format. */  public static class OneMerge {    SegmentInfo info;               // used by IndexWriter    boolean mergeDocStores;         // used by IndexWriter    boolean optimize;               // used by IndexWriter    SegmentInfos segmentsClone;     // used by IndexWriter    boolean increfDone;             // used by IndexWriter    boolean registerDone;           // used by IndexWriter    long mergeGen;                  // used by IndexWriter    boolean isExternal;             // used by IndexWriter    int maxNumSegmentsOptimize;     // used by IndexWriter    final SegmentInfos segments;    final boolean useCompoundFile;    boolean aborted;    Throwable error;    public OneMerge(SegmentInfos segments, boolean useCompoundFile) {      if (0 == segments.size())        throw new RuntimeException("segments must include at least one segment");      this.segments = segments;      this.useCompoundFile = useCompoundFile;    }    /** Record that an exception occurred while executing     *  this merge */    synchronized void setException(Throwable error) {      this.error = error;    }    /** Retrieve previous exception set by {@link     *  #setException}. */    synchronized Throwable getException() {      return error;    }    /** Mark this merge as aborted.  If this is called     *  before the merge is committed then the merge will     *  not be committed. */    synchronized void abort() {      aborted = true;    }    /** Returns true if this merge was aborted. */    synchronized boolean isAborted() {      return aborted;    }    synchronized void checkAborted(Directory dir) throws MergeAbortedException {      if (aborted)        throw new MergeAbortedException("merge is aborted: " + segString(dir));    }    String segString(Directory dir) {      StringBuffer b = new StringBuffer();      final int numSegments = segments.size();      for(int i=0;i<numSegments;i++) {        if (i > 0) b.append(' ');        b.append(segments.info(i).segString(dir));      }      if (info != null)        b.append(" into ").append(info.name);      if (optimize)        b.append(" [optimize]");      return b.toString();    }  }  /**   * A MergeSpecification instance provides the information   * necessary to perform multiple merges.  It simply   * contains a list of {@link OneMerge} instances.   */  public static class MergeSpecification {    /**     * The subset of segments to be included in the primitive merge.     */    public List merges = new ArrayList();    public void add(OneMerge merge) {      merges.add(merge);    }    public String segString(Directory dir) {      StringBuffer b = new StringBuffer();      b.append("MergeSpec:\n");      final int count = merges.size();      for(int i=0;i<count;i++)        b.append("  ").append(1 + i).append(": ").append(((OneMerge) merges.get(i)).segString(dir));      return b.toString();    }  }  /** Exception thrown if there are any problems while   *  executing a merge. */  public static class MergeException extends RuntimeException {    private Directory dir;    /** @deprecated     *  Use {@link #MergePolicy.MergeException(String,Directory)} instead */    public MergeException(String message) {      super(message);    }    public MergeException(String message, Directory dir) {      super(message);      this.dir = dir;    }    /** @deprecated     *  Use {@link #MergePolicy.MergeException(Throwable,Directory)} instead */    public MergeException(Throwable exc) {      super(exc);    }    public MergeException(Throwable exc, Directory dir) {      super(exc);      this.dir = dir;    }    /** Returns the {@link Directory} of the index that hit     *  the exception. */    public Directory getDirectory() {      return dir;    }  }  public static class MergeAbortedException extends IOException {    public MergeAbortedException() {      super("merge is aborted");    }    public MergeAbortedException(String message) {      super(message);    }  }  /**   * Determine what set of merge operations are now   * necessary on the index.  The IndexWriter calls this   * whenever there is a change to the segments.  This call   * is always synchronized on the IndexWriter instance so   * only one thread at a time will call this method.   *   * @param segmentInfos the total set of segments in the index   * @param writer IndexWriter instance   */  abstract MergeSpecification findMerges(SegmentInfos segmentInfos,                                         IndexWriter writer)    throws CorruptIndexException, IOException;  /**   * Determine what set of merge operations is necessary in   * order to optimize the index.  The IndexWriter calls   * this when its optimize() method is called.  This call   * is always synchronized on the IndexWriter instance so   * only one thread at a time will call this method.   *   * @param segmentInfos the total set of segments in the index   * @param writer IndexWriter instance   * @param maxSegmentCount requested maximum number of   *   segments in the index (currently this is always 1)   * @param segmentsToOptimize contains the specific   *   SegmentInfo instances that must be merged away.  This   *   may be a subset of all SegmentInfos.   */  abstract MergeSpecification findMergesForOptimize(SegmentInfos segmentInfos,                                                    IndexWriter writer,                                                    int maxSegmentCount,                                                    Set segmentsToOptimize)    throws CorruptIndexException, IOException;  /**   * Determine what set of merge operations is necessary in   * order to expunge all deletes from the index.   * @param segmentInfos the total set of segments in the index   * @param writer IndexWriter instance   */  MergeSpecification findMergesToExpungeDeletes(SegmentInfos segmentInfos,                                                 IndexWriter writer)    throws CorruptIndexException, IOException  {    throw new RuntimeException("not implemented");  }  /**   * Release all resources for the policy.   */  abstract void close();  /**   * Returns true if a newly flushed (not from merge)   * segment should use the compound file format.   */  abstract boolean useCompoundFile(SegmentInfos segments, SegmentInfo newSegment);  /**   * Returns true if the doc store files should use the   * compound file format.   */  abstract boolean useCompoundDocStore(SegmentInfos segments);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品911| 久久久一区二区三区| 日韩女优av电影在线观看| 国产精品免费av| 美女视频一区在线观看| 日本久久电影网| 国产欧美一区二区在线| 石原莉奈在线亚洲二区| 色域天天综合网| 欧美国产精品一区二区三区| 美女诱惑一区二区| 欧美精品日日鲁夜夜添| 亚洲三级理论片| 成人小视频在线| 国产精品久久久久婷婷| 精品一区二区三区免费播放| 91精品婷婷国产综合久久性色 | 顶级嫩模精品视频在线看| 欧美精品粉嫩高潮一区二区| 亚洲精品少妇30p| 99久久久久久99| 中文字幕欧美激情一区| 国产高清不卡二三区| 日韩西西人体444www| 日韩精品乱码av一区二区| 欧美视频一区在线| 一区二区三区精品视频在线| 99国内精品久久| 国产精品久久久久影院亚瑟 | 精品影视av免费| 91精品国产高清一区二区三区| 依依成人精品视频| 91久久精品日日躁夜夜躁欧美| 国产精品夫妻自拍| 91丨porny丨最新| 日韩美女视频19| 色婷婷一区二区| 一区二区久久久久| 欧美伊人久久久久久久久影院| 亚洲欧美另类小说视频| 色94色欧美sute亚洲线路一ni| 亚洲欧美国产三级| 欧美日韩免费一区二区三区 | 国产精品99久久久久久久vr | 欧美一区二区三区视频| 日韩av中文字幕一区二区三区| 欧美精品久久99| 久久99精品一区二区三区三区| 2024国产精品视频| 大尺度一区二区| 一区二区三区在线免费观看| 欧美日韩精品专区| 久久99国产精品免费网站| 国产欧美日韩不卡免费| 色综合视频一区二区三区高清| 亚洲国产欧美在线| 精品国产乱码久久久久久久久| 91捆绑美女网站| 亚洲成a天堂v人片| 精品区一区二区| 成人av影院在线| 天天影视涩香欲综合网| 久久综合av免费| 欧美伊人久久大香线蕉综合69| 免费成人在线观看视频| 国产精品美女久久久久久久| 欧美日韩不卡在线| 国产成人免费视频网站| 亚洲一卡二卡三卡四卡五卡| 精品久久久久久亚洲综合网| 97精品国产97久久久久久久久久久久| 无码av中文一区二区三区桃花岛| 久久久91精品国产一区二区精品| 91国产视频在线观看| 国产一区二区伦理片| 亚洲综合在线第一页| 久久久久国产免费免费| 在线不卡一区二区| k8久久久一区二区三区| 美女www一区二区| 伊人夜夜躁av伊人久久| 日本一区二区高清| 欧美电影精品一区二区| 欧美图片一区二区三区| 风间由美中文字幕在线看视频国产欧美 | 国产麻豆精品一区二区| 午夜精品一区二区三区免费视频| 国产欧美视频一区二区| 欧美一级欧美三级在线观看| 91啦中文在线观看| 成人亚洲一区二区一| 久久99久久99| 日本伊人色综合网| 亚洲无人区一区| 国产精品久久久久久户外露出 | 精品亚洲porn| 午夜精品久久久久久久蜜桃app| 国产精品伦一区| 久久综合久久鬼色中文字| 91精品国产综合久久香蕉麻豆| 91视频免费播放| 成人av电影在线网| 风间由美中文字幕在线看视频国产欧美| 奇米888四色在线精品| 午夜成人免费视频| 亚洲午夜久久久久久久久久久 | 在线免费视频一区二区| 97se亚洲国产综合自在线| 盗摄精品av一区二区三区| 丰满岳乱妇一区二区三区| 狠狠久久亚洲欧美| 国产一区二区三区在线看麻豆| 六月丁香综合在线视频| 免费不卡在线视频| 激情综合亚洲精品| 国产一区二区不卡| 国产98色在线|日韩| 国产·精品毛片| 99久久99久久综合| 在线亚洲欧美专区二区| 在线一区二区三区四区| 国产亚洲人成网站| 国产欧美一区二区精品婷婷| 久久久久久久久久看片| 国产精品你懂的| 亚洲美女视频在线观看| 亚洲国产中文字幕| 蜜桃精品在线观看| 国产剧情一区二区| aa级大片欧美| 欧美三级日本三级少妇99| 4438x成人网最大色成网站| 日韩欧美在线综合网| 久久精品在线观看| 最新欧美精品一区二区三区| 亚洲午夜电影网| 奇米一区二区三区| 成人综合在线网站| 一本色道久久综合亚洲91| 欧美喷水一区二区| 久久久不卡影院| 亚洲狼人国产精品| 日av在线不卡| 成人av在线播放网址| 精品视频1区2区| 久久精品欧美一区二区三区麻豆| 中文字幕亚洲一区二区va在线| 亚洲bt欧美bt精品| 国产精品一二三区在线| 一本大道av伊人久久综合| 日韩亚洲欧美在线观看| 国产精品免费久久| 免费在线一区观看| 不卡av在线网| 日韩一级成人av| 亚洲欧美日韩在线播放| 美女视频一区二区三区| 91亚洲国产成人精品一区二三| 欧美一区二区三区人| 亚洲欧洲韩国日本视频| 九九久久精品视频| 91久久人澡人人添人人爽欧美 | 日韩一级片网址| 亚洲人成在线观看一区二区| 美女在线视频一区| 欧美图区在线视频| 国产精品传媒入口麻豆| 黄网站免费久久| 欧美日韩黄视频| 日韩一区日韩二区| 国产一区二区精品久久91| 欧美丰满少妇xxxbbb| 亚洲视频一区二区在线观看| 国产精品资源在线| 欧美一区二区视频免费观看| 一区二区欧美在线观看| 91啪亚洲精品| 国产精品国产三级国产aⅴ入口| 狠狠v欧美v日韩v亚洲ⅴ| 91精品国产一区二区三区蜜臀 | 亚洲天堂网中文字| 国产麻豆午夜三级精品| 日韩一级视频免费观看在线| 性久久久久久久久久久久| 91在线播放网址| 国产精品福利一区| 成人美女视频在线看| 日本一区二区三区高清不卡| 久久国产三级精品| 欧美一区二区三区人| 爽爽淫人综合网网站| 欧美三区在线视频| 亚洲午夜一区二区| 欧美日韩国产高清一区| 亚洲国产综合91精品麻豆 | 成人禁用看黄a在线| 久久久精品日韩欧美| 国产成人在线色| 国产日韩av一区| 成人sese在线|