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

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

?? segmenttermdocs.cpp

?? clucene是c++版的全文檢索引擎,完全移植于lucene,采用 stl 編寫.
?? CPP
字號:
/*------------------------------------------------------------------------------
* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
* 
* Distributable under the terms of either the Apache License (Version 2.0) or 
* the GNU Lesser General Public License, as specified in the COPYING file.
------------------------------------------------------------------------------*/
#include "CLucene/StdHeader.h"
#include "SegmentHeader.h"

#include "CLucene/store/IndexInput.h"
#include "Term.h"

CL_NS_DEF(index)

  SegmentTermDocs::SegmentTermDocs(const SegmentReader* _parent){
  //Func - Constructor
  //Pre  - Paren != NULL
  //Post - The instance has been created

      CND_PRECONDITION(_parent != NULL,"Parent is NULL");

      parent      = _parent;
      deletedDocs =  parent->deletedDocs;

      _doc         = 0;
      _freq        = 0;
	  count =		 0;
	  df		   = 0;

      skipInterval=0;
      numSkips=0;
      skipCount=0;
      skipStream=NULL;
      skipDoc=0;
      freqPointer=0;
      proxPointer=0;
      skipPointer=0;
      haveSkipped=false;

      freqStream  = parent->freqStream->clone();
      skipInterval = parent->tis->getSkipInterval();
   }

  SegmentTermDocs::~SegmentTermDocs() {
  //Func - Destructor
  //Pre  - true
  //Post - The instance has been destroyed

      close();
  }

  TermPositions* SegmentTermDocs::__asTermPositions(){
	  return NULL;
  }

  void SegmentTermDocs::seek(Term* term) {
    TermInfo* ti = parent->tis->get(term);
    seek(ti);
    _CLDELETE(ti);
  }

  void SegmentTermDocs::seek(TermEnum* termEnum){
    TermInfo* ti=NULL;
    
    // use comparison of fieldinfos to verify that termEnum belongs to the same segment as this SegmentTermDocs
	if ( termEnum->getObjectName() == SegmentTermEnum::getClassName() ){
      SegmentTermEnum* te = (SegmentTermEnum*)termEnum;
      te->fieldInfos = parent->fieldInfos;
      ti = te->getTermInfo();
    }else{
      ti = parent->tis->get(termEnum->term(false));
    }
    
    seek(ti);
	_CLDELETE(ti);
  }
  void SegmentTermDocs::seek(const TermInfo* ti) {
     count = 0;
    if (ti == NULL) {
      df = 0;
    } else {
      df = ti->docFreq;
      _doc = 0;
      skipDoc = 0;
      skipCount = 0;
      numSkips = df / skipInterval;
      freqPointer = ti->freqPointer;
      proxPointer = ti->proxPointer;
      skipPointer = freqPointer + ti->skipOffset;
      freqStream->seek(freqPointer);
      haveSkipped = false;
    }
  }

  void SegmentTermDocs::close() {

      //Check if freqStream still exists
	  if (freqStream != NULL){
		freqStream->close(); //todo: items like these can probably be delete, because deleting the object also closes it...do everywhere
		_CLDELETE( freqStream );
	  }
     if (skipStream != NULL){
		skipStream->close();
		_CLDELETE( skipStream );
     }
  }

  int32_t SegmentTermDocs::doc()const { 
	  return _doc; 
  }
  int32_t SegmentTermDocs::freq()const { 
	  return _freq; 
  }

  bool SegmentTermDocs::next() {
    while (true) {
      if (count == df)
        return false;

      uint32_t docCode = freqStream->readVInt();
      _doc += docCode >> 1; //unsigned shift
      if ((docCode & 1) != 0)			  // if low bit is set
        _freq = 1;				  // _freq is one
      else
        _freq = freqStream->readVInt();		  // else read _freq
      count++;

      if ( (deletedDocs == NULL) || (deletedDocs->get(_doc) == false ) )
        break;
      skippingDoc();
    }
    return true;
  }

  int32_t SegmentTermDocs::read(int32_t* docs, int32_t* freqs, int32_t length) {
    int32_t i = 0;
//todo: one optimization would be to get the pointer buffer for ram or mmap dirs 
//and iterate over them instead of using readByte() intensive functions.
    while (i<length && count < df) {
      uint32_t docCode = freqStream->readVInt();
      _doc += docCode >> 1;
      if ((docCode & 1) != 0)			  // if low bit is set
        _freq = 1;				  // _freq is one
      else
        _freq = freqStream->readVInt();		  // else read _freq
      count++;

      if (deletedDocs == NULL || !deletedDocs->get(_doc)) {
        docs[i] = _doc;
        freqs[i] = _freq;
        i++;
      }
    }
    return i;
  }

  bool SegmentTermDocs::skipTo(const int32_t target){
    if (df >= skipInterval) {                      // optimized case
      if (skipStream == NULL)
         skipStream = freqStream->clone(); // lazily clone

      if (!haveSkipped) {                          // lazily seek skip stream
        skipStream->seek(skipPointer);
        haveSkipped = true;
      }

      // scan skip data
      int32_t lastSkipDoc = skipDoc;
      int64_t lastFreqPointer = freqStream->getFilePointer();
      int64_t lastProxPointer = -1;
      int32_t numSkipped = -1 - (count % skipInterval);

      while (target > skipDoc) {
        lastSkipDoc = skipDoc;
        lastFreqPointer = freqPointer;
        lastProxPointer = proxPointer;
        
        if (skipDoc != 0 && skipDoc >= _doc)
          numSkipped += skipInterval;
        
        if(skipCount >= numSkips)
          break;

        skipDoc += skipStream->readVInt();
        freqPointer += skipStream->readVInt();
        proxPointer += skipStream->readVInt();

        skipCount++;
      }
      
      // if we found something to skip, then skip it
      if (lastFreqPointer > freqStream->getFilePointer()) {
        freqStream->seek(lastFreqPointer);
        skipProx(lastProxPointer);

        _doc = lastSkipDoc;
        count += numSkipped;
      }

    }

    // done skipping, now just scan

    do {
      if (!next())
        return false;
    } while (target > _doc);
    return true;
  }


CL_NS_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区在线观看| 亚洲国产婷婷综合在线精品| 欧美视频中文字幕| 91九色02白丝porn| 91成人免费电影| 一本到高清视频免费精品| 99久久婷婷国产综合精品| 不卡大黄网站免费看| 成人中文字幕合集| 成人高清在线视频| 色丁香久综合在线久综合在线观看| 91丨porny丨在线| 欧美影院一区二区三区| 欧美日韩一区二区在线观看 | 精品91自产拍在线观看一区| 欧美成人一区二区| 久久精品视频在线免费观看| 国产精品嫩草99a| 亚洲天堂2014| 日韩精品每日更新| 国产激情91久久精品导航 | 亚洲福利一二三区| 蜜桃久久久久久| 国产精品99久久久久| av色综合久久天堂av综合| 在线观看日韩精品| 日韩精品在线网站| |精品福利一区二区三区| 午夜精品视频一区| 国精产品一区一区三区mba桃花| 成人夜色视频网站在线观看| 一本久道中文字幕精品亚洲嫩| 91精品国产麻豆| 国产精品久久久久久久久晋中| 亚洲一区中文日韩| 国内精品久久久久影院色| 91高清视频在线| 久久影院午夜论| 亚洲第一综合色| 成人天堂资源www在线| 在线成人av影院| 亚洲国产精品av| 日本不卡一区二区三区 | 午夜久久福利影院| 成人免费视频播放| 日韩三级电影网址| 亚洲一区二区三区在线播放| 国产福利电影一区二区三区| 欧美日韩一级大片网址| 国产精品国产三级国产aⅴ中文| 午夜电影一区二区三区| 成人av小说网| 日韩欧美国产三级电影视频| 亚洲永久免费视频| 一本大道av一区二区在线播放| 日韩欧美国产一区二区三区| 图片区小说区国产精品视频| 中文字幕精品一区二区三区精品| 麻豆久久久久久久| 91亚洲国产成人精品一区二三| 久久综合色一综合色88| 777奇米成人网| 亚洲一区二区三区四区五区黄| 日韩欧美不卡在线观看视频| 国产成人免费高清| 亚洲综合色丁香婷婷六月图片| 欧美一区二区三区影视| 成人在线视频首页| 日韩电影免费在线| 国产欧美日本一区二区三区| 在线日韩av片| 国产一区999| 亚洲国产美国国产综合一区二区| 久久综合久久综合久久综合| 色噜噜久久综合| 国产一区在线看| 亚洲丰满少妇videoshd| 国产精品毛片a∨一区二区三区| 欧美色综合久久| 成人性生交大片免费看中文网站| 天使萌一区二区三区免费观看| 中文av一区二区| 日韩精品一区二区三区四区视频| av一二三不卡影片| 狠狠色2019综合网| 亚洲成人一二三| 亚洲日本电影在线| 亚洲国产成人私人影院tom| 欧美一区二区三区视频在线 | 青娱乐精品视频| 亚洲精品免费在线观看| 欧美激情一区二区三区在线| 日韩女优视频免费观看| 欧美午夜影院一区| 一道本成人在线| av在线不卡网| 国产精品亚洲人在线观看| 秋霞午夜鲁丝一区二区老狼| 亚洲一区二区三区自拍| 日韩一区在线播放| 国产精品传媒在线| 亚洲国产精品ⅴa在线观看| 久久综合av免费| 精品乱人伦一区二区三区| 91精品在线麻豆| 欧美日本在线播放| 精品视频1区2区| 欧美三级电影在线观看| 欧美色欧美亚洲另类二区| 99精品欧美一区| 91免费看视频| 99热精品国产| 91美女蜜桃在线| 色哟哟在线观看一区二区三区| 成人永久免费视频| 99视频有精品| 91在线一区二区| 91伊人久久大香线蕉| 91在线观看免费视频| 一本大道av一区二区在线播放| 色综合久久久久综合体桃花网| 91色视频在线| 日本伦理一区二区| 欧美精品粉嫩高潮一区二区| 欧美高清视频不卡网| 欧美精品高清视频| 精品国产乱码久久久久久闺蜜| 久久综合久久99| 中文字幕一区二区三区不卡在线| 1区2区3区国产精品| 亚洲一区二区三区在线播放| 石原莉奈在线亚洲三区| 久久国产福利国产秒拍| 国产成人精品综合在线观看 | 国产不卡在线一区| bt7086福利一区国产| 在线观看一区日韩| 欧美浪妇xxxx高跟鞋交| 精品国产一区二区亚洲人成毛片| 国产欧美一区二区精品忘忧草| 国产精品欧美经典| 亚洲高清视频的网址| 精品中文av资源站在线观看| 春色校园综合激情亚洲| 欧美熟乱第一页| 久久九九99视频| 一区二区三区免费看视频| 日本美女视频一区二区| 高清视频一区二区| 欧美色图免费看| 久久精品亚洲麻豆av一区二区| 中文字幕一区二区三区不卡在线| 亚洲成人av一区二区三区| 国产一二精品视频| 欧美日韩亚洲综合在线| 久久久久国产精品麻豆| 亚洲国产成人av网| 国产成人久久精品77777最新版本| 欧美伊人久久大香线蕉综合69| 精品国产乱码久久久久久免费| 亚洲男同性恋视频| 国产精品18久久久久久vr| 在线看不卡av| 国产精品久久久久久久午夜片| 日韩中文字幕一区二区三区| youjizz久久| 欧美电视剧免费观看| 亚洲伊人色欲综合网| 国产麻豆精品视频| 69p69国产精品| 亚洲精品欧美激情| 丁香一区二区三区| 日韩精品影音先锋| 日韩精品乱码免费| 在线观看视频一区二区| 国产精品私人自拍| 国模少妇一区二区三区| 欧美人xxxx| 亚洲在线观看免费| 91免费小视频| 亚洲视频免费看| 99精品在线免费| 国产精品进线69影院| 国产一区 二区 三区一级| 日韩免费一区二区三区在线播放| 一区二区三区四区在线免费观看| 国产精品一区专区| 国产精品另类一区| 91成人在线精品| 免费人成精品欧美精品| bt7086福利一区国产| 国产欧美日韩卡一| 青青青爽久久午夜综合久久午夜| 欧美在线视频全部完| 亚洲免费av网站| 一本大道av一区二区在线播放| 亚洲欧洲另类国产综合| 99在线视频精品| 国产精品国产三级国产普通话99| 国产.欧美.日韩|