锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV中文无码乱人伦,日日噜噜噜噜夜夜爽亚洲精品,国产亚洲人成无码网在线观看http://m.tkk7.com/csusky/category/29489.htmlzh-cnFri, 30 May 2008 06:55:50 GMTFri, 30 May 2008 06:55:50 GMT60Lucene鐨勫垏璇?analysis鍖?/title><link>http://m.tkk7.com/csusky/archive/2008/05/30/204087.html</link><dc:creator>鏅撳畤</dc:creator><author>鏅撳畤</author><pubDate>Fri, 30 May 2008 06:47:00 GMT</pubDate><guid>http://m.tkk7.com/csusky/archive/2008/05/30/204087.html</guid><wfw:comment>http://m.tkk7.com/csusky/comments/204087.html</wfw:comment><comments>http://m.tkk7.com/csusky/archive/2008/05/30/204087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/csusky/comments/commentRss/204087.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/csusky/services/trackbacks/204087.html</trackback:ping><description><![CDATA[<p style="font-size: 10pt">鍦ㄦ悳绱㈠紩鎿庝腑錛屽垏璇嶈鏄竴涓噸瑕佺殑閮ㄥ垎錛屽叾涓寘鎷笓鏈夊悕璇嶇殑鎻愬彇銆佽瘝鐨勫垎鍓層佽瘝鐨勬牸寮忓寲絳夌瓑銆?br /> TokenStream 綾誨嚑涔庢槸鎵鏈夎繖浜涚被鐨勫熀綾?br /> 鏈変袱涓渶瑕佽瀛愮被瀹炵幇鐨勬柟娉昑oken next() 鍜?nbsp;close()<br /> 棣栧厛鏉ョ湅analysis鍖咃紝榪欎釜鍖呬富瑕佹槸鎻愪緵涓浜涚畝鍗曠殑璇嶆眹鍖栧鐞?br /> 浠?span style="color: #339966">Tokenizer緇撳熬鐨勭被</span>鏄皢瑕佸鐞嗙殑瀛楃涓茶繘琛屽垎鍓叉垚Token嫻侊紝鑰屾牴鎹垎鍓茬殑渚濇嵁鐨勫張浜х敓浜?jiǎn)浠ヤ笅鍑犱釜Tokenizer綾?br /> 棣栧厛Tokenizer綾繪槸鎵鏈?span style="color: #000000"><span style="color: #008080">浠okenizer緇撳熬鐨勭被</span>鐨勫熀<span style="color: #000000">綾?br /> 鐒跺悗鏄疌harTokenizer錛屾墍鏈夌殑浠?span style="color: #339966">Tokenizer緇撳熬鐨勭被閮芥槸浠庤繖涓被緇ф壙鐨?br /> <span style="color: #000000">榪欎釜綾諱腑鏈変竴涓娊璞℃柟娉?br /> <span style="color: #ff0000">  protected abstract boolean isTokenChar(char c);</span><br /> 鍙﹀涓涓渶瑕佽瀛愮被瑕嗗啓鐨勬柟娉?br />  <span style="color: #ff0000"> protected char normalize(char c) {}錛?/span><br /> 鏄鍗曚釜瀛楃榪涜澶勭悊鐨勬柟娉曡濡傝灝嗚嫳鏂囧瓧姣嶅叏閮ㄨ漿鍖栦負(fù)灝忓啓<br /> <br /> 榪樻湁涓涓彉閲?br /> <span style="color: #ff0000">protected Reader input;<br /> </span><span style="color: #0000ff">榪欎釜璇誨彇鍣ㄦ槸榪欎簺綾繪墍澶勭悊鐨勬暟鎹殑   鏁版嵁婧?br /> 杈撳叆涓涓猂eader 錛屼駭鐢熶竴涓猅oken嫻?/span><br /> <br /> 榪欎釜鏂規(guī)硶鏄槸鍚﹁繘琛屽垏鍒嗙殑渚濇嵁錛屼緷嬈¤鍙朿har嫻侊紝鐒跺悗鐢ㄨ繖涓柟娉曞姣忎釜char榪涜媯(gè)嫻嬶紝濡傛灉榪斿洖false鍒欏皢棰勫厛瀛樺偍鍦?br /> 璇嶆眹緙撳啿鍖轟腑鐨刢har鏁扮粍浣滀負(fù)涓涓猅oken榪斿洖<br /> <span style="color: #ff0000">LetterTokenizer 錛?/span><br />     <span style="color: #ff99cc"> <span style="color: #333399"> protected boolean isTokenChar(char c) {<br />               return Character.isLetter(c);<br />       }<br /> </span></span><span style="color: #ff0000">WhitespaceTokenizer錛?/span><br />      <span style="color: #333399"> protected boolean isTokenChar(char c) {<br />               return !Character.isWhitespace(c);<br />       } <br /> </span><span style="color: #ff0000">LowerCaseTokenizer extends LetterTokenizer錛?/span><br /> <span style="color: #333399">protected char normalize(char c) {<br />       return Character.toLowerCase(c);<br />    }</span><br />    鍦ㄦ瀯閫犲嚱鏁頒腑璋冪敤super(in);榪涜鍜?nbsp;LetterTokenizer鍚屾牱鐨勬搷浣滐紝浣嗘槸鍦ㄨ瘝姹囧寲涔嬪墠鎵鏈夌殑璇嶉兘杞寲涓哄皬鍐欎簡(jiǎn)<br />  <br /> 鐒跺悗鏄互Filter緇撳熬鐨勭被錛岃繖涓被綈囦富瑕佹槸瀵瑰凡緇忚瘝姹囧寲鐨凾oken嫻佽繘琛岃繘涓姝ョ殑澶勭悊<br />  杈撳叆鏄疶oken嫻?, 杈撳嚭浠嶇劧鏄疶oken嫻併?br /> TokenFilter extends TokenStream  鏄墍鏈夎繖浜涚被鐨勭埗綾?br /> protected TokenStream input;<br /> 鍦═okenFilter 涓湁涓涓猅okenStream 鍙橀噺錛屾槸Filter綾葷皣澶勭悊鐨勬暟鎹簮錛岃孎ilter綾葷皣鍙堟槸緇ф壙浜?jiǎn)TokenStream 綾葷殑<br /> 鏈変竴涓猵ublic final Token next()鏂規(guī)硶,榪欎釜鏂規(guī)硶浠okenStream.next()浜х敓鐨凾oken嫻?涓哄鐞嗘簮錛屼駭鐢熺殑浠嶇劧鏄疶oken嫻?br /> 鍙笉榪囦腑闂存湁涓浜涘鐞嗙殑榪囩▼<br /> <span style="color: #ff0000">LowerCaseFilter錛氬皢鎵鏈夌殑Token嫻佺殑杞寲涓哄皬鍐?br /> </span>    <span style="color: #333399"> t.termText = t.termText.toLowerCase();</span><br /> <span style="color: #ff0000">StopFilter錛氳繃婊ゆ帀涓浜涘仠姝㈣瘝錛岃繖浜涘仠姝㈣瘝鐢辨瀯閫犲嚱鏁版寚瀹?/span><br />  <span style="color: #333399">    for (Token token = input.next(); token != null; token = input.next())<br />       if (!stopWords.contains(token.termText))<br />         return token;<br /> </span><br /> <br /> <span style="color: #800080">姣旇緝涓涓婽okenizer綾葷皣鍜孎ilter綾葷皣錛屽彲浠ョ煡閬?br /> Tokenizer綾葷皣涓昏鏄杈撳叆鐨凴eader嫻侊紝瀹為檯涓婃槸瀛楃嫻佹寜鐓т竴瀹氱殑瑙勫垯榪涜鍒嗗壊錛屼駭鐢熷嚭Token嫻?br /> 鍏惰緭鍏ユ槸瀛楃涓茬殑Reader嫻佸艦寮忥紝杈撳嚭鏄疶oken嫻?br /> <br /> Filter綾葷皣涓昏鏄杈撳叆鐨凾oken嫻佽繘琛屾洿榪涗竴姝ョ殑澶勭悊錛屽鍘婚櫎鍋滄璇嶏紝杞寲涓哄皬鍐?br /> 涓昏涓轟竴浜涙牸寮忓寲鎿嶄綔銆?br /> 鐢變簬Filter綾葷皣鐨勮緭鍏ヨ緭鍑虹浉鍚岋紝鎵浠ュ彲浠ュ祵濂楀嚑涓笉鍚岀殑Filter綾伙紝浠ヨ揪鍒伴鏈熺殑澶勭悊鐩殑銆?br /> 鍓嶄竴涓狥ilter綾葷殑杈撳嚭浣滀負(fù)鍚庝竴涓狥ilter綾葷殑杈撳叆<br /> 鑰孴okenizer綾葷皣鐢變簬杈撳叆杈撳嚭涓嶅悓錛屾墍浠ヤ笉鑳藉祵濂?br /> <br /> <br /> </span><br /> <br /> <br /> <br /> <br /> </span></span></span></span></p> <img src ="http://m.tkk7.com/csusky/aggbug/204087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/csusky/" target="_blank">鏅撳畤</a> 2008-05-30 14:47 <a href="http://m.tkk7.com/csusky/archive/2008/05/30/204087.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬IndexWriter涓殑3涓ц兘鍙傛暟http://m.tkk7.com/csusky/archive/2008/05/15/200706.html鏅撳畤鏅撳畤Thu, 15 May 2008 11:27:00 GMThttp://m.tkk7.com/csusky/archive/2008/05/15/200706.htmlhttp://m.tkk7.com/csusky/comments/200706.htmlhttp://m.tkk7.com/csusky/archive/2008/05/15/200706.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/200706.htmlhttp://m.tkk7.com/csusky/services/trackbacks/200706.html鍦?font size="2">IndexWriter涓湁3涓噸瑕佺殑鎬ц兘鍙傛暟
mergeFactor           榛樿涓?0
minMergeDocs      榛樿涓?0
maxMergeDocs     榛樿涓篒nteger.maxValue

maxMergeDocs     涓涓涓墍鑳藉寘鍚殑鏈澶х殑doc鏁幫紝杈懼埌榪欎釜鏁扮洰鍗充笉鍐嶅皢孌佃繘琛屽悎騫?涓鑸笉鏀瑰彉榪欎釜鍊?br /> minMergeDocs      鏄寚鍦≧AMDirectory涓繚瀛樼殑Doc鐨勪釜鏁幫紝杈懼埌minMergeDocs 涓嵆瑕佸悎騫跺埌紜洏?shù)笂鍘诲Q堝湪紜洏?shù)笂鏂板晦Z竴涓錛?br /> mergeFactor           鍚堝茍鍥犲瓙錛屾槸鎺у埗紜洏?shù)笂鐨剬D電殑鍚堝茍鐨勶紝姣忔鍦ㄧ‖鐩樹(shù)笂鏂板緩涓涓涔嬪悗鍗蟲(chóng)墽琛?br />                                  targetMergeDocs*=mergeFactor錛堜竴寮濮?font size="2">targetMergeDocs=minMergeDocs錛?nbsp;濡傛灉紜洏?shù)笂鐨刣oc鏁扮洰澶т簬絳変簬                            targetMergeDocs鍒欏皢紜洏?shù)笂鏈鍚庡緩绔嬬殑mergeFactor涓榪涜鍚堝茍鎴愪竴涓

鎷塊粯璁ょ殑鍙傛暟涓句緥錛?br /> 濡傛灉紜洏?shù)笂闈㈠凡缁忔?涓  姣忎釜孌靛垎鍒瓨鍌ㄤ簡(jiǎn)10涓狣ocument,鍏憋紙90涓狣OC錛夛紝榪欐椂鍊欏鏋滅▼搴忓啀鍚戠‖鐩樺悎騫朵竴涓柊鐨勬錛堝惈10涓狣OC錛夛紝鍚堝茍瀹屼箣鍚?font size="2">targetMergeDocs=10*10  紼嬪簭媯(gè)鏌ュ凡緇忓悎騫剁殑鏈鍚庯紙鎸夌収鍒涘緩鐨勬椂闂村厛鍚庨『搴忥級(jí)mergeFactor涓鐨刣ocument鐨勬誨拰100鏄惁澶т簬絳変簬targetMergeDocs錛堣繖閲屾槸100錛屽垰濂芥弧瓚寵姹傦級(jí)浜庢槸紼嬪簭鍙堝皢紜洏?shù)笂闈㈢殑鍚?0涓鍚堝茍涓轟竴涓柊鐨勬銆?br />
鍙﹀涓涓緥瀛愶細(xì)
doc鏁扮洰            孌墊暟鐩?br />   1000---------------9涓?br />   100-----------------9涓?br />   10   ----------------9涓?br /> 榪欐椂濡傛灉鍐嶈薄紜洏?shù)腑鏂板晦Z竴涓柊鐨勫寘鍚簡(jiǎn)10涓猟oc鐨勬
    doc鏁扮洰            孌墊暟鐩?br />   (1) 1000----------------9涓?br />
  (2)  100-----------------9涓?br />
  (3)   10  ----------------9涓?br />                                      
  (4)    10 ----------------1涓?br /> 榪欐椂鍊?3)(4)棣栧厛鍚堝茍鎴愪竴涓柊鐨勬(3-4)鍖呭惈100涓猟oc
 鐒跺悗(2)(3-4)鍜屽茍鎴愪竴涓柊孌碉紙2-3-4錛夊寘鍚?000涓猟oc
鐒跺悗(1)(2-3-4)鍚堝茍鎴愪竴涓柊鐨勬  鍖呭惈10000涓猟oc
鏈鍚庡悎騫舵垚涓涓


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) {};
    }

  }


鏅撳畤 2008-05-15 19:27 鍙戣〃璇勮
]]>
Lucene绱㈠紩鏂囦歡鐨勬牸寮?/title><link>http://m.tkk7.com/csusky/archive/2008/04/21/194564.html</link><dc:creator>鏅撳畤</dc:creator><author>鏅撳畤</author><pubDate>Mon, 21 Apr 2008 09:52:00 GMT</pubDate><guid>http://m.tkk7.com/csusky/archive/2008/04/21/194564.html</guid><wfw:comment>http://m.tkk7.com/csusky/comments/194564.html</wfw:comment><comments>http://m.tkk7.com/csusky/archive/2008/04/21/194564.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/csusky/comments/commentRss/194564.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/csusky/services/trackbacks/194564.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt"><span style="color: #ccffcc"><span style="color: #ccffcc"><span style="color: #99ccff"><span style="color: #3366ff">segments鏂囦歡鐨勬牸寮忥細(xì) 錛堟鐨勪俊鎭級(jí)<br /> int:  =-1    鏌ョ湅鏂囦歡鏄惁鏄疞ucene鍚堟硶鐨勬枃浠舵牸寮?br /> long:        鐗堟湰鍙鳳紝姣忔洿鏂頒竴嬈¤鏂囦歡灝嗕細(xì)灝嗙増鏈彿鍔?<br /> int:         鐢ㄦ潵鍛藉悕鏂版<br /> int:         孌電殑鏁扮洰<br /> String + int 孌電殑淇℃伅 String鏄鐨勫悕縐?nbsp; int鏄涓墍鍚殑doc鏁扮洰<br /> String + int 鍚屼笂</span></span></span></span></span></p> <p><br /> <span style="font-size: 10pt"><span style="color: #99cc00"><span style="color: #ccffcc"><span style="color: #ccffcc"><span style="color: #99ccff"><span style="color: #3366ff">.fnm鐨勬枃浠舵牸寮忥細(xì)   錛團(tuán)ield鐨勪俊鎭級(jí)<br /> int:               Field鐨勪釜鏁幫紝鏈灝戜負(fù)1錛屾渶灝戞湁涓涓狥ield("",false)錛屽湪鍒濆鍖栫殑鏃跺欏啓鍏?鏆傛椂涓嶇煡閬撳師鍥?; 鍚嶇О涓虹┖瀛楃涓詫紝鏈儲(chǔ)寮曪紝        鏈?nbsp;              鍚?nbsp;          閲忓寲銆俽eadVInt()璇誨彇<br /> String: byte      String鏄?nbsp;Field鐨勫悕縐?nbsp; byte鎸囩ず璇ield 鏄惁琚儲(chǔ)寮曪紝鏄惁鍚戦噺鍖?錛堝兼湁錛?1錛?0錛?1錛夌涓涓?浠h〃琚儲(chǔ)寮曪紝絎簩涓唬琛ㄨ鍚戦噺鍖?br /> String: byte Field 鍚屼笂</span></span></span></span></span></span>      </p> <p><span style="color: #3366ff"> <br /> </span></p> <p><span style="font-size: 10pt"><span style="color: #3366ff">.fdx鐨勬枃浠舵牸寮忥細(xì)涓昏鏄彁渚涘.fdt涓瓨鍌ㄧ殑document鐨勯殢鍗寵鍙?br /> long :       絎竴涓猟ocument鍦?fdt鏂囦歡涓殑浣嶇疆<br /> long:        絎簩涓猟ocument鍦?fdt鏂囦歡涓殑浣嶇疆</span></span><span style="color: #3366ff"> <p><span style="color: #3366ff"><br /> </span></p> </span></p> <p><span style="font-size: 10pt"><span style="color: #3366ff">.fdt鐨勬枃浠舵牸寮忥細(xì)  .fdt鏂囦歡瀛樺偍浜?jiǎn)涓緋誨垪document鐨勪俊鎭?br /> VInt:        璇ocument涓殑isStored灞炴т負(fù)true鐨勫煙鐨勪釜鏁?br /> (VInt:)      濡傛灉璇ield鐨刬sStored灞炴т負(fù)true鍒欏緱鍒拌field鐨刦ieldNumber錛屾殏鏃朵笉鐭ラ亾榪欎釜fieldNumber鏄庝箞浜х敓鐨勶紝鏈変粈涔堢敤錛屽垵姝ヤ及璁℃槸鎸夌収field鍒涘緩鐨勯『搴忎駭鐢熺殑錛屾瘡嬈″啀涓婁竴涓猣ield鐨刦ieldNumber鍩虹涓婂姞1銆?br /> byte:        濡傛灉璇ield鐨刬sTokenized灞炴т負(fù)true鍐欏叆1鍚﹀垯鍐欏叆false銆?br /> String:      璇ield鐨剆tringValue()鍊箋?br /> 涓涓猟ocument緇撴潫錛屼笅闈㈢殑鏁版嵁灝嗕細(xì)寮濮嬩竴涓柊鐨刣ocument錛屾瘡涓柊鐨刣ocument鐨勫紑濮嬬偣鐨勬枃浠朵綅緗兘浼?xì)鍦?fdx涓湁璁拌澆錛屼究浜庨殢鍗寵闂?/span></span></p> <p> </p> <img src ="http://m.tkk7.com/csusky/aggbug/194564.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/csusky/" target="_blank">鏅撳畤</a> 2008-04-21 17:52 <a href="http://m.tkk7.com/csusky/archive/2008/04/21/194564.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>org.apache.lucene.index.SegmentInfoshttp://m.tkk7.com/csusky/archive/2008/04/18/194072.html鏅撳畤鏅撳畤Fri, 18 Apr 2008 09:02:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/18/194072.htmlhttp://m.tkk7.com/csusky/comments/194072.htmlhttp://m.tkk7.com/csusky/archive/2008/04/18/194072.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/194072.htmlhttp://m.tkk7.com/csusky/services/trackbacks/194072.htmlfinal class SegmentInfos extends Vector
鍙互鐪嬪嚭璇ョ被瀹為檯涓婃槸涓涓猇ector   浠ュ強(qiáng)灝佽浜?jiǎn)瀵硅Vevtor鐨勪竴浜涙搷浣?br /> 瀹為檯涓婂皝瑁呯殑鏄segments鏂囦歡鐨勪竴浜涜鍐欐搷浣?br /> 鍏堟潵鐪嬩笅segments鏂囦歡鐨勬牸寮?br />
segments鏂囦歡鐨勬牸寮忥細(xì)
int:  =-1         鏂囦歡鏄惁鏄疞ucene鍚堟硶鐨勬枃浠舵牸寮忔甯告儏鍐典笅涓?-1
long:             鐗堟湰鍙鳳紝姣忔洿鏂頒竴嬈¤鏂囦歡灝嗕細(xì)灝嗙増鏈彿鍔?
int:                鐢ㄦ潵鍛藉悕鏂版
int:                孌電殑鏁扮洰
String + int  孌電殑淇℃伅 String鏄鐨勫悕縐?nbsp; int鏄涓墍鍚殑doc鏁扮洰
String + int  鍚屼笂

鎵浠ョ敤Lucene鐨凙PI錛屾垜浠彲浠ョ畝鍗曠殑鎵撳嵃鍑哄叾segments鐨勬墍鏈変俊鎭?br />

try {
   //DataInputStream fis = new DataInputStream(new FileInputStream("C:\\sf\\snow\\segments"));
   FSDirectory dir=FSDirectory.getDirectory("C:/sf/snow", false);
    InputStream input = dir.openFile("segments");
   System.out.println("Format:"+input.readInt());             //寰楀埌鏂囦歡鏍囧織錛屾槸鍚︿負(fù)姝e父鐨剆egments鏂囦歡
   System.out.println("version:"+input.readLong());        //寰楀埌鐗堟湰鍙?br />    System.out.println("name:"+input.readInt());                //寰楀埌鐢ㄦ潵閲嶅懡鍚嶆柊孌電殑int錛屾殏鏃朵笉鐭ラ亾鏈変粈涔堢敤
   int n=input.readInt();                                                          //孌電殑鏁扮洰
   System.out.println("SegmentNum:"+n);                          
   for(int i=0;i<n;i++) {                                                           //鐢ㄥ驚鐜墦鍗板嚭鎵鏈夋鐨勪俊鎭?鍚嶇О鍜岄暱搴?br />     System.out.println("segment "+i+" - name:"+input.readString()+" num:"+input.readInt());
   }
  } catch (Exception e) {

  }
褰撶劧,璇ョ被鎻愪緵浜?jiǎn)鏇翠负澶嶆潅鐨勮畨K棶鍜屾洿鏂皊egments鏂囦歡鐨勬柟娉?br />  final void read(Directory directory)    灝嗘墍鏈夌殑孌典俊鎭繚瀛樺湪鏈瑅ector涓?br /> final void write(Directory directory)    璺熸柊璇egment鏂囦歡鐨勫唴瀹癸紝涓昏鏄負(fù)浜?jiǎn)娣诲姞娈靛Q?br /> 涓昏鏄洿鏂?鐗堟湰鍙?孌電殑鏁扮洰錛岃窡鏂板畬榪欎簺鍚庡嵆鍙線segment鏂囦歡鍚庢坊鍔犳柊孌電殑淇℃伅銆?br />



鏅撳畤 2008-04-18 17:02 鍙戣〃璇勮
]]>
org.apache.lucene.index.SegmentInfohttp://m.tkk7.com/csusky/archive/2008/04/18/194062.html鏅撳畤鏅撳畤Fri, 18 Apr 2008 08:45:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/18/194062.htmlhttp://m.tkk7.com/csusky/comments/194062.htmlhttp://m.tkk7.com/csusky/archive/2008/04/18/194062.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/194062.htmlhttp://m.tkk7.com/csusky/services/trackbacks/194062.htmlsegment(孌?鐨勪俊鎭?br /> 璇ョ被姣旇緝綆鍗曪紝璐村嚭鍏跺叏閮ㄤ唬鐮?/p>

import org.apache.lucene.store.Directory;

final class SegmentInfo {
  public String name;        //鍦ㄧ儲(chǔ)寮曠洰褰曚腑鍞竴鐨勫悕縐?nbsp;
  public int docCount;      // 璇ユ涓璬oc鐨勬暟鐩?br />   public Directory dir;      // 璇ユ鎵瀛樺湪鐨凞irrectory

  public SegmentInfo(String name, int docCount, Directory dir) {
    this.name = name;
    this.docCount = docCount;
    this.dir = dir;
  }
}



鏅撳畤 2008-04-18 16:45 鍙戣〃璇勮
]]>
org.apache.lucene.store.RAMInputStreamhttp://m.tkk7.com/csusky/archive/2008/04/18/193996.html鏅撳畤鏅撳畤Fri, 18 Apr 2008 03:45:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/18/193996.htmlhttp://m.tkk7.com/csusky/comments/193996.htmlhttp://m.tkk7.com/csusky/archive/2008/04/18/193996.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/193996.htmlhttp://m.tkk7.com/csusky/services/trackbacks/193996.html璇ョ被鏄粠RAMFile涓鏁版嵁鐢ㄧ殑
鏈閲嶈鐨勪竴涓柟娉曪細(xì)
璇ユ柟娉曞瓨鍦ㄧ潃浠嶳AMFile鐨勫涓猙yte[1024]涓鍙栨暟鎹殑鎯呭喌錛屾墍浠ュ簲璇ュ湪寰幆涓繘琛屽鐞?br />
 public void readInternal(byte[] dest, int destOffset, int len) {
    int remainder = len;
    int start = pointer;
    while (remainder != 0) {
      int bufferNumber = start/BUFFER_SIZE; //  buffer鐨勫簭鍙?br />       int bufferOffset = start%BUFFER_SIZE; //    buffer鍋忕Щ閲?br />       int bytesInBuffer = BUFFER_SIZE - bufferOffset;// 鍦ㄥ綋鍓峛uffer涓墿涓嬬殑瀛楄妭鏁?br />       //濡傛灉緙撳啿鍖轟腑鍓╀綑鐨勫瓧鑺傚ぇ浜巐en錛屽垯璇誨嚭len闀垮害鐨勫瓧鑺傦紝濡傛灉涓嶅鍒欒鍑哄墿浣欑殑瀛楄妭鏁?
      // bytesToCopy琛ㄧず瀹為檯璇誨嚭鐨勫瓧鑺傛暟
      int bytesToCopy = bytesInBuffer >= remainder ? remainder : bytesInBuffer;
      byte[] buffer = (byte[])file.buffers.elementAt(bufferNumber);
      System.arraycopy(buffer, bufferOffset, dest, destOffset, bytesToCopy);
      destOffset += bytesToCopy;       //澧炲姞宸茬粡澶嶅埗鐨刡yte鏁版嵁闀垮害 鍒?nbsp; dest涓殑鍋忕Щ閲?br />       start += bytesToCopy;                 //RAMFile鏂囦歡鎸囬拡錛岀敤鏉ョ‘瀹歜ufferNumber 鍜宐ytesInBuffer   鐩稿綋浜庡唴瀛樹(shù)腑鐨勫垎欏?br />       remainder -= bytesToCopy;       //鍓╀綑鐨勮繕鏈鍒剁殑瀛楄妭鏁?br />     }
    pointer += len;//鏂囦歡鎸囬拡浣嶇疆
  }



鏅撳畤 2008-04-18 11:45 鍙戣〃璇勮
]]>
org.apache.lucene.store.RAMOutputStreamhttp://m.tkk7.com/csusky/archive/2008/04/18/193988.html鏅撳畤鏅撳畤Fri, 18 Apr 2008 03:38:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/18/193988.htmlhttp://m.tkk7.com/csusky/comments/193988.htmlhttp://m.tkk7.com/csusky/archive/2008/04/18/193988.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/193988.htmlhttp://m.tkk7.com/csusky/services/trackbacks/193988.html榪欐槸OutputStream鐨勪竴涓瓙綾伙紝鍏惰緭鍑?guó)櫘惧鏄唴瀛樺Q屽噯紜潵璇存槸RAMFile錛屽嵆灝嗘暟鎹啓鍏ュ埌RAMFile鐨刅ector涓幓銆?br /> 璇ョ被鏈変竴涓渶閲嶈鐨勬柟娉曪紝鐜板湪鎶婂畠鏁翠釜璐村嚭鏉?/p>

public void flushBuffer(byte[] src, int len) {
    int bufferNumber = pointer/BUFFER_SIZE;   //buffer搴忓垪錛屽嵆褰撳墠鎵鍐橞uffer鍦≧AMFile涓殑Vector涓殑搴忓垪鍙?br />     int bufferOffset = pointer%BUFFER_SIZE;   //鍋忕Щ閲忥紝鍗沖綋鍓嶆墍鍐欏瓧鑺傚湪褰撳墠Buffer涓殑鍋忕Щ閲忋?br />     int bytesInBuffer = BUFFER_SIZE - bufferOffset; //褰撳墠Buffer鐨勫墿浣欏彲鍐欏瓧鑺傛暟
   //bytesToCopy鏄疄闄呭啓鍏ョ殑瀛楄妭鏁幫紝濡傛灉褰撳墠Bufer鐨勫墿浣欏瓧鑺傛暟澶т簬闇瑕佸啓鐨勫瓧鑺傜殑鎬繪暟鍒欏啓鍏ユ墍鏈夊瓧鑺?br />    //鍚﹀垯錛屽皢褰撳墠Buffer鍐欐弧鍗沖彲錛屽墿浣欑殑瀛楄妭灝嗗啓鍏ヤ笅涓涓狟uffer
    int bytesToCopy = bytesInBuffer >= len ? len : bytesInBuffer;

    if (bufferNumber == file.buffers.size())
      file.buffers.addElement(new byte[BUFFER_SIZE]); //鍦≧AMFile涓坊鍔犳柊鐨刡yte[1024]鍏冪礌

    byte[] buffer = (byte[])file.buffers.elementAt(bufferNumber);
    System.arraycopy(src, 0, buffer, bufferOffset, bytesToCopy);

    if (bytesToCopy < len) {     // not all in one buffer,
      int srcOffset = bytesToCopy;
      bytesToCopy = len - bytesToCopy;    // remaining bytes 鍓╀綑鐨勬湭鍐欏叆鐨勫瓧鑺傛暟
      bufferNumber++;                         //灝哹uffer鏁板鍔?
      if (bufferNumber == file.buffers.size()) 
        file.buffers.addElement(new byte[BUFFER_SIZE]);
      buffer = (byte[])file.buffers.elementAt(bufferNumber); //鍓╀綑瀛楄妭鍐欏叆涓嬩竴涓狟uffer
      System.arraycopy(src, srcOffset, buffer, 0, bytesToCopy);
    }
    pointer += len;
    if (pointer > file.length)
      file.length = pointer;        //縐諱綅鏂囦歡鎸囬拡          鍦ㄥ師鏈夌殑鍩虹涓婂姞涓婂疄闄呭啓鍏ョ殑瀛楄妭鎬繪暟

    file.lastModified = System.currentTimeMillis(); //淇敼鏂囦歡鐨勬渶鍚庝慨鏀規(guī)椂闂翠負(fù)褰撳墠鏃墮棿
  }

浠庢寚瀹氱殑瀛楄妭鏁扮粍澶嶅埗鎸囧畾闀垮害鐨勫瓧鑺傚埌RAMFile涓幓銆傜敱浜嶳AMFile涓璙ector鐨勫厓绱犳槸byte[1024]鎵浠ュ彲鑳藉瓨鍦ㄥ仛涓嬈¤鎿嶄綔
瑕佹搷浣滀袱涓猇ector鍏冪礌鐨勬儏鍐點(diǎn)傚嵆鍏堝皢褰撳墠byte[1024]鏁扮粍濉弧錛屽啀鏂板緩涓涓厓绱犺杞藉墿浣欑殑瀛楄妭銆?br />
鍙﹀榪樻湁涓涓獁riteTo(OutputStream out)鏂規(guī)硶錛屽皢RAMFile涓殑鏁版嵁杈撳嚭鍒板彟涓涓緭鍑烘祦





鏅撳畤 2008-04-18 11:38 鍙戣〃璇勮
]]>
org.apache.lucene.store.RAMFilehttp://m.tkk7.com/csusky/archive/2008/04/18/193982.html鏅撳畤鏅撳畤Fri, 18 Apr 2008 03:23:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/18/193982.htmlhttp://m.tkk7.com/csusky/comments/193982.htmlhttp://m.tkk7.com/csusky/archive/2008/04/18/193982.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/193982.htmlhttp://m.tkk7.com/csusky/services/trackbacks/193982.html榪欎釜綾繪瘮杈冪畝鍗?br /> import java.util.Vector;
class RAMFile {
  Vector buffers = new Vector();
  long length;
  long lastModified = System.currentTimeMillis();
}

鍙互鐞嗚В涓轟竴涓瓨鍌ㄥ湪鍐呭瓨?shù)腑鐨勬枃錃g錛宐uffers鏄瓨鍌ㄦ暟鎹殑瀹瑰櫒錛宭ength鏄鍣ㄤ腑鏁版嵁鐨勬葷殑瀛楄妭鏁?br /> lastModified 鏄渶鍚庝慨鏀規(guī)椂闂淬?br />
鍦ㄥ疄闄呬嬌鐢ㄨ繃紼嬩腑瀹瑰櫒buffers瀛樻斁鐨勫璞℃槸涓涓猙yte[1024]鏁扮粍銆?br />



鏅撳畤 2008-04-18 11:23 鍙戣〃璇勮
]]>
org.apache.lucene.store.OutputStreamhttp://m.tkk7.com/csusky/archive/2008/04/16/193574.html鏅撳畤鏅撳畤Wed, 16 Apr 2008 13:24:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/16/193574.htmlhttp://m.tkk7.com/csusky/comments/193574.htmlhttp://m.tkk7.com/csusky/archive/2008/04/16/193574.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/193574.htmlhttp://m.tkk7.com/csusky/services/trackbacks/193574.htmlOutputStream
榪欐槸涓涓狝bstract綾伙紝鏄疞ucene鑷繁鐨勪竴涓枃浠惰緭鍑烘祦鐨勫熀綾?br /> BUFFER_SIZE = 1024  緙撳啿鍖?澶у皬涓?1024bit
bufferStart = 0 鏂囦歡浣嶇疆鎸囬拡
bufferPosition = 0 鍐呭瓨緙撳啿鍖烘寚閽?br />
 public final void writeByte(byte b) throws IOException {
    if (bufferPosition >= BUFFER_SIZE)
      flush();
    buffer[bufferPosition++] = b;
  }
鍑犱箮鎵鏈夌殑鍐欏叆鍑芥暟閮借璋冪敤榪欎釜鍑芥暟錛屽鏋滅紦鍐插尯鐨勫綋鍓嶅閲忓凡緇忕瓑浜庝粬鐨勬渶澶у閲忥紝鍒欏皢緙撳啿鍖轟腑鐨勬暟鎹啓鍏ユ枃浠躲?br />
public final void writeBytes(byte[] b, int length) throws IOException
鎵歸噺鍐檅yte榪涘叆鍐呭瓨緙撳啿

public final void writeInt(int i) throws IOException
鍐欏叆鏁村艦鏁版嵁

public final void writeLong(long i) throws IOException
鍐欏叆闀挎暣鍨嬫暟鎹紝鍗崇粨鍚堢Щ浣嶈繍綆楄皟鐢ㄤ袱嬈riteInt(int i)

鍙﹀錛屾渶鍊煎緱娉ㄦ剰鐨勬槸鍦ㄨ綾諱腑鏈変袱涓渶鐗規(guī)畩鐨勫嚱鏁?br /> writeVInt錛坕nt i錛?/   writeVLong(long i),
鍏堣
writeVInt(int  i )   {
 while ((i & ~0x7F) != 0) {                               
      writeByte((byte)((i & 0x7f) | 0x80));
      i >>>= 7;
    }
    writeByte((byte)i);
}
~0x7F==~(0111 1111)==(1000 0000)==0x80
((i & ~0x7F) != 0) 榪欎竴鍙ュ垽鏂璱鏄惁澶т簬0x80錛屽鏋滀笉鏄垯璇存槑璇nt鍙湁涓涓瓧鑺傜殑鏈夋晥鏁版嵁錛屽叾浠栧瓧鑺傞兘鏄?錛岀洿鎺ヨ漿鍖栦負(fù)Byte鍐欏叆銆?br /> 濡傛灉澶т簬0x80鍒?br /> (i & 0x7f) | 0x80
i&0x7f 鍙鍚?浣嶈繘琛屽鐞嗭紝|0x80灝嗙8浣嶇疆1錛屼笌鍓嶉潰鐨?涓猙it鏋勬垚涓涓瓧鑺傦紝緗?鐨勫師鍥犳槸璇存槑璇ュ瓧鑺傚茍涓嶆槸涓涓畬鏁寸殑鏁村艦鏁幫紝闇瑕佷笌鍏朵粬鐨勫瓧鑺傚悎璧鋒潵鎵嶈兘鏋勬垚涓涓暣褰㈡暟瀛椼?br /> 榪欎釜綆楁硶鐩稿綋浜庡皢涓涓?2bit鐨勬暣褰㈡暟瀛楁寜鐓ф瘡7浣嶇紪鐮佹垚涓涓瓧鑺傝繘琛屽瓨鍌紝灝嗘寜鐓ф暣褰㈡暟鐨勫ぇ灝忓瓨鍌?-5涓瓧鑺傘?/span>
writeVLong(long i)鏂規(guī)硶澶ц嚧涓庡叾鐩稿悓銆?br />
final void writeChars(String s, int start, int length)
灝嗗瓧絎︿覆杞寲鎴怳TF-8緙栫爜鐨勬牸寮忚繘琛屽瓨鍌ㄣ?br /> 闄勶細(xì)

UNICODE鍊?UTF-8緙栫爜
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx

鍙瀵逛簬鍦?0x00-0x7F鑼冨洿鍐呯殑UNICODE鍊鹼紙鏈澶ф湁鏁堟暟浣嶏細(xì)7浣嶏級(jí)錛屽皢浼?xì)缂栫爜鎴愬崟瀛楄妭鐨勫Q屼細(xì)澶уぇ鑺傜害瀛樺偍絀洪棿銆?br /> 瀵逛簬鍦?nbsp;          0x80-0x7FF鑼冨洿鍐呯殑UNICODE錛堟渶澶ф湁鏁堟暟浣嶏細(xì)11浣嶏級(jí)錛屼細(xì)緙栫爜鎴愬弻瀛楄妭鐨勩傚厛瀛樺偍鍘熷瓧鑺備綆5浣嶇殑鏁頒綅錛屼笖灝嗘渶楂樹(shù)綅鍜屾楂樹(shù)綅閮界疆1錛屽啀嬈¢珮?shù)綅缃?錛坵riteByte((byte)(0xC0 | (code >> 6)));錛夈傜劧鍚庡瓨鍌ㄥ悗6浣嶇殑瀛楄妭錛屽皢鍓嶄袱浣嶇疆10錛坵riteByte((byte)(0x80 | (code & 0x3F)));錛?br /> 瀵逛簬鍏朵粬鐨刄NICODE鍊煎垯
writeByte((byte)(0xE0 | (code >>> 12)));               4浣?br />  writeByte((byte)(0x80 | ((code >> 6) & 0x3F)));   5浣?br />  writeByte((byte)(0x80 | (code & 0x3F)));            3- 5浣?br />
final void writeString(String s) throws IOException
璇ュ嚱鏁伴鍏堢敤s.length()鍒ゆ柇璇tring鎬誨叡鏈夊灝戜釜瀛楃
鐒跺悗棣栧厛璋冪敤writeVInt鍐欏叆榪欎釜瀛楃闀垮害
鍐嶈皟鐢╳riteChars(s,s.length())鍐欏叆瀛楃


鍦╥nputStream涓殑readString()鏂規(guī)硶鍒欎笌鍏剁浉鍙嶏紝棣栧厛鐢╮eadVInt()鏂規(guī)硶璇誨彇瀛楃闀垮害len 鐒跺悗璇誨彇len闀垮害鐨勫瓧絎?br />
protected final void flush() throws IOException
璇ユ柟娉曡皟鐢ㄥ彟澶栦竴涓柟娉昮lushBuffer灝嗙紦鍐插尯涓殑鏁版嵁杈撳嚭錛岀劧鍚庢竻絀虹紦鍐插尯錛?br />
abstract void flushBuffer(byte[] b, int len) throws IOException
鍙flushBuffer鏂規(guī)硶鏄痑bstract鐨勶紝鍗抽渶瑕佸叾瀛愮被瀵硅鏂規(guī)硶榪涜瑕嗗啓錛屼互瀹氫綅璇ヨ緭鍑烘祦鐨勮緭鍑烘柟寮忋?br />
final long getFilePointer() throws IOException
寰楀埌鏂囦歡鎸囬拡鐨勪綅緗紝鍗沖緱鍒拌緭鍑烘祦宸茬粡杈撳嚭鐨勫瓧鑺傛暟銆?br />
public void seek(long pos) throws IOException
杈撳嚭緙撳啿鍖虹殑鍐呭錛岀劧鍚庡皢鏂囦歡鎸囬拡瀹氫綅鍒發(fā)ong鎵鎸囩ず鐨勬枃浠朵綅緗?br />
abstract long length() throws IOException
榪斿洖鏂囦歡涓凡鏈夌殑瀛楄妭鏁般傞渶瑕佸瓙綾誨疄鐜般?br />


















鏅撳畤 2008-04-16 21:24 鍙戣〃璇勮
]]>
org.apache.lucene.store.FSDirectoryhttp://m.tkk7.com/csusky/archive/2008/04/10/191977.html鏅撳畤鏅撳畤Thu, 10 Apr 2008 13:35:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/10/191977.htmlhttp://m.tkk7.com/csusky/comments/191977.htmlhttp://m.tkk7.com/csusky/archive/2008/04/10/191977.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/191977.htmlhttp://m.tkk7.com/csusky/services/trackbacks/191977.htmlFSDirectory緇ф壙浜?jiǎn)abstract綾籇irectory
鍦ㄨ綾諱腑鏃㈡湁璇ョ被鐨勪竴浜涘垵濮嬪寲鎿嶄綔錛屽張鏈夊FSDirectory瀵硅薄鏈韓鐨勪竴浜涙搷浣滐紝榪欐槸涓轟粈涔堟妸鍏舵瀯閫犲嚱鏁拌緗負(fù)縐佹湁鐨勪竴閮ㄥ垎鍘熷洜

static final Hashtable DIRECTORIES = new Hashtable();
姣忔柊寤轟竴涓狥SDirectory閮戒細(xì)灝嗗叾鍔犲叆鍒拌Hashtable涓潵銆傚悕縐版槸FSDirectory瀵瑰簲鐨凢ile   鍊兼槸璇SDirectory銆?br /> 娉ㄦ剰錛歠inal瀵硅薄騫墮潪鏄笉鍙洿鏀圭殑

static final String LOCK_DIR =
    System.getProperty("org.apache.lucene.lockdir",
      System.getProperty("java.io.tmpdir"));
棣栧厛鐪嬬敤鎴鋒槸鍚︽敞鍐屼簡(jiǎn)"org.apache.lucene.lockdir"灞炴э紝濡傛灉娌℃湁鍒欑敤JAVA铏氭嫙鏈哄浐鏈夌殑"java.io.tmpdir"灞炴?br /> 榪欎釜灞炴ф槸涓涓礬寰勶紝浠h〃lucene鐨勯攣鏂囦歡閿佹斁鐨勪綅緗?br />
static final boolean DISABLE_LOCKS =
      Boolean.getBoolean("disableLuceneLocks") || Constants.JAVA_1_1;
濡傛灉鐢ㄦ埛娉ㄥ唽浜?disableLuceneLocks"灞炴т笖涓篺alse錛?span style="color: red">鎴栬?/span>JAVA鐨勭増鏈槸1.1鍒欐棤娉曚嬌鐢ㄩ攣銆?br />
static FSDirectory getDirectory(String path, boolean create)
static FSDirectory getDirectory(File file, boolean create)
浠庡緱鍒頒竴涓寚瀹氳礬寰勬垨鑰呮枃浠剁殑FSDirectory濡傛灉鍦ㄥ垯鍙栧嚭錛屽鏋滀笉瀛樺湪鍒欑敤鍏剁鏈夌殑鏋勯犲嚱鏁版瀯閫犱竴涓?br /> 璇ョ被榪樻湁3涓潪static鐨勭被鍙橀噺
  private File directory = null;      绱㈠紩鐩綍
  private int refCount;                   閿佺洰褰?br />   private File lockDir;                    绱㈠紩鐩綍鏁扮洰
瀹為檯涓婏紝鍒濆鍖栦竴涓狥SDirectory鍙渶瑕佸垵濮嬪寲榪?涓彉閲忓嵆鍙?br /> 濡傛灉create鐨勫間負(fù)true 鍒欙細(xì)濡傛灉绱㈠紩鐩綍鏄凡緇忓瓨鍦ㄧ殑鐩綍錛屽垯浼?xì)閬嶅巻璇ョ洰褰曠劧鍚庡垹闄ゆ瘡涓涓枃浠訛紝濡傛灉閿佺洰褰曟槸宸插瓨鍦ㄧ殑涔熶細(xì)鐢╨ist榪斿洖鎵鏈夌殑鏂囦歡鐒跺悗璋冪敤file.delete() 鍒犻櫎銆?濡傛灉鐩綍涓嶅瓨鍦ㄥ垯鍒涘緩涓涓柊鐨勩?br />
娉ㄦ剰錛歭ist()鏂規(guī)硶   浼?xì)鍏堢敤鏂囦欢鍚崢q涜鎺掑簭鐒跺悗榪斿洖錛坅.txt浼?xì)姣攂.txt鍏堣繑鍥烇級(jí)    涓攄elete鏂規(guī)硶鍒犻櫎鏂囦歡澶規(guī)椂錛屽彧鑳藉垹闄ょ┖鏂囦歡澶廣傚鏋滃け璐ュ垯璺沖嚭紼嬪簭錛屼笉浼?xì)鍒犻櫎鍦ㄨ鏂囦欢澶逛箣鍚帢q斿洖鐨勬枃浠躲傦紙濡傛灉鏈塧a.txt , ab/b.txt , b.txt 錛?鍒欏垹闄ゆ椂鍊欑敱浜巃鏂囦歡澶歸潪絀哄垹闄ゅけ璐ワ紝鍒檅.txt鐢變簬鍓嶉潰鍒犻櫎澶辮觸璺沖嚭紼嬪簭錛屼篃涓嶄細(xì)琚垹闄?浣嗘槸aa.txt琚甯稿垹闄わ級(jí)

private FSDirectory(File path, boolean create) throws IOException
縐佹湁鐨勬瀯閫犲嚱鏁?br />
private synchronized void create() throws IOException
鍒涘緩鏂扮殑directory /lockDir鐩綍錛屽綋鐩綍宸插瓨鍦ㄦ椂鍗蟲(chóng)竻絀鴻鐩綍錛屼笉瀛樺湪鍗沖垱寤烘柊鐨勭洰褰曘?br />
final String[] list() throws IOException
浠ュ瓧絎︿覆鏂囦歡鍚嶇殑褰㈠紡榪斿洖绱㈠紩鐩綍鐨勬墍鏈夋枃浠?br />
final boolean fileExists(String name) throws IOException
鍦ㄧ儲(chǔ)寮曠洰褰曟槸鍚﹀瓨鍦ㄦ寚瀹氭枃浠跺悕鐨勬枃浠?br />
final long fileModified(String name) throws IOException
static final long fileModified(File directory, String name)
榪斿洖璇ユ枃浠剁殑鏈鍚庝慨鏀規(guī)椂闂達(dá)紝directory鍙傛暟涓虹浉瀵硅礬寰勶紝絎竴涓嚱鏁扮殑鐩稿璺緞涓虹儲(chǔ)寮曠洰褰?br />
void touchFile(String name) throws IOException
灝嗚鏂囦歡鐨勬渶鍚庝慨鏀規(guī)椂闂磋緗負(fù)褰撳墠鏃墮棿

final long fileLength(String name) throws IOException
榪斿洖璇ユ枃浠剁殑闀垮害

final void deleteFile(String name) throws IOException
鍒犻櫎璇ユ枃浠?br />
final synchronized void renameFile(String from, String to) throws IOException
閲嶅懡鍚嶈鏂囦歡
璇ユ柟娉曚細(xì)棣栧厛媯(gè)嫻嬫柊鐨勬枃浠跺悕鍛藉悕鐨勬枃浠舵槸鍚﹀凡緇忓瓨鍦ㄥ鏋滃瓨鍦ㄥ嵆鍒犻櫎璇ユ枃浠訛紝鐒跺悗鍐嶅皢鏂囦歡閲嶆柊鍛藉悕涓烘柊鐨勬枃浠跺悕銆?br /> doug cutting鍦ㄨ鏂規(guī)硶鐨勬敞閲婁笂鍐欏埌錛?br /> 1.鍒犻櫎鎿嶄綔鍜岄噸鍛藉悕鐨勬搷浣滀笉鏄師瀛愮殑銆?br /> 2.閲嶅懡鍚嶆搷浣滃湪鏈変簺铏氭嫙鏈轟笂闈笉鑳芥紜殑宸ヤ綔錛屽鏋滈噸鍛藉悕澶辮觸鍒欎細(xì)閲囩敤鎵嬪姩copy鐨勬柟娉曘備嬌鐢ㄨ緭鍏ヨ緭鍑烘祦灝嗘棫鐨勬枃浠剁殑鍐呭鍐欏叆鍒版柊鐨勬枃浠朵腑鍘伙紝鐒跺悗鍒犻櫎鏃х殑鏂囦歡銆?br /> 娉ㄦ剰錛氳鏂規(guī)硶蹇呴』鏄悓姝ョ殑銆?br />
final OutputStream createFile(String name) throws IOException
鐢ㄦ寚瀹氱殑鏂囦歡鍚嶅垱寤轟竴涓柊鐨勫彲鍐欑殑絀烘枃浠?nbsp; 瀹為檯涓婅繑鍥炵殑鏄疐SOutputStream,娉ㄦ剰榪欓噷鐨凮utputStream騫朵笉鏄痡ava鐨勫熀紜綾匯傝屾槸doug cutting鑷繁鍐欑殑涓涓枃浠墮殢鍗寵闂被銆傚悓鐞咶SInputStream鍜孖nputStream涔熸槸Lucene鑷繁鐨勭被銆?br />
final InputStream openFile(String name) throws IOException
浠庝竴涓瓨鍦ㄧ殑鏂囦歡鎵撳紑涓涓緭鍏ユ祦

getLockPrefix()
鍦‵SDirectory涓繕鏈?br />  private static MessageDigest DIGESTER;榪欎釜闈?rùn)鎬佸彉閲忔槸鎻愪緵鍔犲瘑鍔熻兘鐨?br /> DIGESTER=MessageDigest.getInstance("MD5"),-----MD5鍔犲瘑綆楁硶
鎴栬呭彲浠IGESTER=MessageDigest.getInstance("SHA"),-----SHA鍔犲瘑綆楁硶
鐢ㄤ簬瀵歸攣鐩綍鐨?nbsp;  鏂囦歡鍚嶇殑鍔犲瘑
鐢ㄦ硶濡備笅錛?br /> digest = DIGESTER.digest(dirName.getBytes());  dirName鏄渶瑕佽鍔犲瘑鐨勫瓧絎︿覆錛岃繖閲屾槸绱㈠紩鏂囦歡鐨勭洰褰曞悕錛?br /> 鍦‵SContext涓紝鍏跺簲鐢ㄥ湪 getLockPrefix() 璇ユ柟娉曟槸涓烘煇涓儲(chǔ)寮曠洰褰曞垱寤哄叾瀵瑰簲鐨勯攣鐩綍鏂囦歡鍚嶃?br /> 棣栧厛榪斿洖緇忚繃鍔犲瘑鍚庣殑byte[] 鏁扮粍digest錛岀劧鍚庡皢digest鎸夌収姣?涓猙it杞寲涓轟竴涓?6榪涘埗鐨勫瓧絎︼紝瀛樿繘涓涓猄tringBuffer涓?br /> 鍏惰漿鍖栫被浼間笌Base64緙栫爜鏂瑰紡錛屼笉榪囪綆鍗曞緱澶氥?br />
鏂規(guī)硶
Lockl  makeLock錛圫tring name錛?br /> 鏄粠Directory涓墿灞曡屾潵鐨勶紝璇ユ柟娉曡繑鍥炰竴涓狶ock瀵硅薄錛岃瀵硅薄灝嗕細(xì)鍦ㄤ粙緇嶅畬Lucene鐨勮緭鍏ヨ緭鍑烘祦涔嬪悗浠嬬粛銆?br /> 璇ユ柟娉曟瘮杈冪畝鍗曪紝棣栧厛鏄皟鐢ㄤ簡(jiǎn)getLockPrefix() 鏂規(guī)硶錛岃繑鍥炴枃浠墮攣鐨勯儴鍒嗗璞″悕錛岀劧鍚庡湪璇ュ悕縐板悗闈㈠姞涓婇攣鐨勭壒寰佸悕
璀璇磋鍐欓攣 浜嬪姟閿?
鍏跺悕縐扮被浼間簬涓嬶細(xì)
lucene-12c90c2c381bc7acbc4846b4ce97593b-write.lock
lucene-12c90c2c381bc7acbc4846b4ce97593b-commit.lock
榪欎袱縐嶉攣鏈哄埗灝嗕細(xì)鍦ㄥ悗闈粙緇?br /> 鏈鍚庨氳繃涓涓尶鍚嶇殑鍐呴儴綾昏繑鍥炰竴涓粡榪囬噸杞界殑Lock瀵硅薄錛岃鍐呴儴綾諱腑鐨勬柟娉曟湁閿佺殑鍒涘緩錛屽緱鍒幫紝閲婃斁錛屼互鍙?qiáng)妫嫻嬶紝鍙﹀榪樻湁涓涓猼oString()鏂規(guī)硶榪斿洖閿佺殑鍚嶇О銆?br />


鍦‵SDirectory綾諱腑鏈塐utputStream鍜孖nputStream鐨勫疄鐜扮被錛岃繖涓や釜铏氱被鍙槸瀹氫箟浜?jiǎn)涓浜涙搷浣滐紝騫舵病鏈夊畾涔夎緭鍏ユ垨鑰呰緭鍑虹殑璁懼銆?br /> Lucene鍦ㄨ緭鍏ヨ緭鍑虹殑璁捐涓婏紝灝嗕細(xì)鐢卞瓙綾誨畾涔夎緭鍏ヨ緭鍑虹殑璁懼銆?br /> FSOutputStream
鍦‵SOutputStream涓湁涓涓?RandomAccess File=new RandomAccessFile(path, "rw");
鍦ㄥ璇ヨ緭鍑烘祦鐨勬搷浣滃皢鐢ㄨ皟鐢ㄨfile鐨勭浉搴旀柟娉曞疄鐜?br /> 鏈閲嶈鐨?br />   public final void flushBuffer(byte[] b, int size) throws IOException {
    file.write(b, 0, size);
  }
flushBuffer鐨勮皟鐢ㄥ皢浼?xì)灏哹yte涓殑0--size鑼冨洿鐨勬暟鎹啓鍏ュ埌鏂囦歡path涓幓銆?br />

FSInputStream
鏈閲嶈鐨?br /> protected final void readInternal(byte[] b, int offset, int len)
       throws IOException {
    synchronized (file) {
      long position = getFilePointer();     //寰楀埌璇ュ綋鍓嶆枃浠舵寚閽?br />       if (position != file.position) {
        file.seek(position);
        file.position = position;
      }
      int total = 0;
      do {

   //浠庢枃浠朵腑璇誨彇鎸囧畾闀垮害鐨勫瓧鑺傚埌瀛楄妭鏁扮粍
   // 鍦ㄥ叾鍩虹被InputStream涓殑refill()鏂規(guī)硶  灝嗕細(xì)璋冪敤  readInternal(buffer, 0, bufferLength);棣栧厛浠庢枃浠朵腑璇誨彇瀛楄妭鍒扮紦鍐叉暟緇勩?br />   //  鍦↖nputStream涓瘡嬈¤鍙栨搷浣滈兘浼?xì)璋冪敤readInternal鏂規(guī)硶錛屾垨鑰呴氳繃refill()鏂規(guī)硶闂存帴璋冪敤璇ユ柟娉曘?br />         int i = file.read(b, offset+total, len-total);       //灝嗘枃浠朵腑鐨勬暟鎹鍒扮紦鍐插尯
        if (i == -1)
          throw new IOException("read past EOF");
        file.position += i;
        total += i;
      } while (total < len);
    }
  }























鏅撳畤 2008-04-10 21:35 鍙戣〃璇勮
]]>
org.apache.lucene.document.DateFieldhttp://m.tkk7.com/csusky/archive/2008/04/10/191963.html鏅撳畤鏅撳畤Thu, 10 Apr 2008 11:26:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/10/191963.htmlhttp://m.tkk7.com/csusky/comments/191963.htmlhttp://m.tkk7.com/csusky/archive/2008/04/10/191963.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/191963.htmlhttp://m.tkk7.com/csusky/services/trackbacks/191963.html璇ョ被鎻愪緵浜?jiǎn)鏃ユ湡鍜屽瓧绗︿覆涔嬮棿鐨勭涙簰杞寲錛屽疄闄呬笂鏄?long鍨嬪拰String鍨嬬殑鐩鎬簰杞寲錛岃漿鍖栨椂鐢ㄥ埌浜?jiǎn)涓涓笉甯哥敤鐨?br /> Long.toString(long,int);鏂規(guī)硶銆傛槸鎸夋寚瀹氱殑鏂瑰紡瀵筶ong鍨嬭繘琛岃漿鍖?br /> 絎竴涓弬鏁版槸瑕佽漿鍖栫殑long,絎簩涓弬鏁版槸杞寲鏃跺欑殑鍩烘暟錛屽鏋滃熀鏁版槸10灝辯浉褰撲簬鏂規(guī)硶Long.toString(long);
榪欓噷浣跨敤鐨勫弬鏁版槸鏈澶у鹼紝鍗?6== 10涓暟瀛?26涓嫳鏂囧瓧姣嶃傝繖鏍瘋漿鍖栧嚭鏉ョ殑瀛楃涓查暱搴︽瘮杈冪煭錛屽崰鐢ㄦ瘮杈冨皯鐨勭┖闂達(dá)紝
鍙﹀錛屽湪杞寲鏃訛紝緇熶竴浜?jiǎn)铦{鍖栧悗鐨勫瓧絎︿覆闀垮害錛屽鏋滀笉瓚?浣嶏紙鏃ユ湡鐨刲ong杞寲鍚庢渶楂樹(shù)負(fù)9浣嶏紝1970涔嬪悗鐨勬棩鏈熷彲姝g‘杞崲錛夛紝
緇熶竴闀垮害鍚庣殑瀛楃涓插彲浠ラ氳繃姣旇緝瀛楃涓叉潵姣旇緝鏃ユ湡鐨勫ぇ灝忋?br />

鏃ユ湡杞寲鎴愮殑瀛楃涓茬被浼間簬
0fev8eza3
鏈潵搴旇鏄痜ev8eza3 閲囧彇浜?jiǎn)涓嵀?浣嶈ˉ0鐨勬柟娉曘?br />
  private static int DATE_LEN = Long.toString(1000L*365*24*60*60*1000,
            Character.MAX_RADIX).length();
璁$畻鍑轟粠1970騫村紑濮嬪悗1000騫寸殑鏃墮棿杞寲涓哄瓧絎︿覆鍚庣殑闀垮害錛屾墍鏈夎漿鍖栧悗鐨勬椂闂撮兘涓嶅簲瓚呰繃榪欎釜闀垮害錛屽鏋滀笉瓚沖垯鍦ㄥ墠闈㈣ˉ0

鍙互閫氳繃瀛楃涓茶漿鍖栦負(fù)鏃ユ湡鐨勫嚱鏁拌綆楀嚭鑳借〃紺虹殑鏈澶ф棩鏈熶負(fù)
stringToTime("zzzzzzzzz");
鎵撳嵃鍑烘潵鏄?Fri Apr 22 19:04:28 CST 5188  
鎵浠ヨ鍑芥暟鑳借漿鍖栫殑鏃ユ湡鑼冨洿涓?1970-1-1~~5188-4-22


鏃ユ湡杞寲涓哄瓧絎︿覆
public static String timeToString(long time)

瀛楃涓茶漿鍖栦負(fù)鏃ユ湡
public static long stringToTime(String s)


瀹為檯涓?鍑芥暟 LongToString(long i,int radix) 鐩稿綋浜?nbsp; 鍏堝皢i杞寲涓簉adix榪涘埗鐨勬暣鏁幫紝鐒跺悗鍐嶇敤鍑芥暟
LongToString(i)杞寲涓哄瓧絎︿覆銆傛墍浠adix鐨勫煎簲璇ュ湪2--36涔嬮棿濡傛灉涓嶆槸 鍒欐寜鐓?0榪涘埗璁$畻銆?br />



鏅撳畤 2008-04-10 19:26 鍙戣〃璇勮
]]>
org.apache.lucene.document.Documenthttp://m.tkk7.com/csusky/archive/2008/04/08/191555.html鏅撳畤鏅撳畤Tue, 08 Apr 2008 12:27:00 GMThttp://m.tkk7.com/csusky/archive/2008/04/08/191555.htmlhttp://m.tkk7.com/csusky/comments/191555.htmlhttp://m.tkk7.com/csusky/archive/2008/04/08/191555.html#Feedback0http://m.tkk7.com/csusky/comments/commentRss/191555.htmlhttp://m.tkk7.com/csusky/services/trackbacks/191555.htmlDocument鏄竴浜汧ield鐨勯泦鍚堬紝姣忎釜Field鏈変竴涓悕瀛楀拰鏂囨湰鍊鹼紝褰撲腑鐨勬煇浜汧ield鍙兘浼?xì)闅忕潃Documnet琚瓨鍌ㄣ傝繖鏍鳳紝姣忎釜Document搴旇鑷沖皯鍖呭惈涓涓彲浠ュ敮涓鏍囩ず瀹冪殑琚瓨鍌ㄧ殑Field

//Field闆嗗悎
List fields = new Vector();
//澧炲己鍥犲瓙錛屼綔鐢ㄤ簬璇ocument鐨勬墍鏈塅ield
private float boost = 1.0f;
//鍚慏ocument涓坊鍔燜ield
public final void add(Field field) {
    fields.add(field);
  }
//鍒犻櫎鎸囧畾鍚嶇О鐨勭涓涓狥ield
public final void removeField(String name)
//鍒犻櫎鎵鏈夋嫢鏈夋寚瀹氬悕縐扮殑Field
public final void removeFields(String name)
//寰楀埌鎸囧畾鍚嶇О鐨勭涓涓狥ield
public final Field getField(String name)
//浠ユ暟緇勭殑褰㈠紡榪斿洖鎸囧畾鍚嶇О鐨勬墍鏈塅ield
public final Field[] getFields(String name)
//寰楀埌鎵鏈塅ield鐨勪竴涓灇涓?br /> public final Enumeration fields()

璇ョ被涔熼噸杞戒簡(jiǎn)toString()鏂規(guī)硶
鎵撳嵃鍑烘墍鏈塅ield鐨勪俊鎭?br />





鏅撳畤 2008-04-08 20:27 鍙戣〃璇勮
]]>
org.apache.lucene.document.Field綾?/title><link>http://m.tkk7.com/csusky/archive/2008/04/08/191550.html</link><dc:creator>鏅撳畤</dc:creator><author>鏅撳畤</author><pubDate>Tue, 08 Apr 2008 12:07:00 GMT</pubDate><guid>http://m.tkk7.com/csusky/archive/2008/04/08/191550.html</guid><wfw:comment>http://m.tkk7.com/csusky/comments/191550.html</wfw:comment><comments>http://m.tkk7.com/csusky/archive/2008/04/08/191550.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/csusky/comments/commentRss/191550.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/csusky/services/trackbacks/191550.html</trackback:ping><description><![CDATA[package org.apache.lucene.document;   <br /> Field<br /> 鏄疍ocument鐨勪竴閮ㄥ垎錛屾瘡涓狥ield鏈変袱涓儴鍒嗙粍鎴?鍚嶅瓧-鍊?瀵?鍚嶅瓧鏄疭tring 鍊?鍙互鏄疭tring 鍜?Reader錛屽鏋滄槸KeyWord綾誨瀷鐨凢ield錛岄偅涔堝煎皢涓嶄細(xì)琚繘涓姝ュ鐞嗭紝鍍廢RL錛孌ate絳夌瓑銆侳ield琚瓨鍌ㄥ湪Index涓紝浠ヤ究浜庤兘浠its鐨勫艦寮忚繑鍥炲師鏈夌殑Document<br /> Field鏈? 涓狟oolean褰㈢殑鏍囪瘑<br />   private boolean isStored = false;     琚瓨鍌?nbsp;  <br />   private boolean isIndexed = true;    琚儲(chǔ)寮?br />   private boolean isTokenized = true  琚垎鍓?br /> 閫氳繃璋冩暣榪?涓猙oolean鐨勫鹼紝鍙互紜畾璇ield鐨勭被鍨?br />   Keyword      true, true, false           涓鑸瓨鍌?URL DATE 絳夊叧閿瓧<br />   UnIndexed    true, false, false          涓鑸槸闅廐ITS鏌ヨ緇撴灉涓璧瘋繑鍥炵殑淇℃伅<br />   Text              true, true, true            <br />   UnStored      false, true, true<br /> <br /> 鍙﹀錛岃繕鏈変竴涓噸杞界殑toString鏂規(guī)硶 鍙互鎵撳嵃鍑?guó)櫙ield鐨勭被鍨?br /> <br /> float boost = 1.0f;    澧炲己鍥犲瓙錛岀敤浜庢帓搴忕殑璇勫垎錛屼綔鐢ㄤ簬鎷ユ湁璇ュ煙(field)鐨勬墍鏈夋枃妗?document)<br /> <br />   <br />   <br /> <br /> <img src ="http://m.tkk7.com/csusky/aggbug/191550.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/csusky/" target="_blank">鏅撳畤</a> 2008-04-08 20:07 <a href="http://m.tkk7.com/csusky/archive/2008/04/08/191550.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://lwjiheng.com" target="_blank">无码日韩人妻AV一区免费l</a>| <a href="http://zjztauto.com" target="_blank">久久亚洲日韩精品一区二区三区</a>| <a href="http://7272004.com" target="_blank">成人男女网18免费视频</a>| <a href="http://k9l4.com" target="_blank">亚欧人成精品免费观看</a>| <a href="http://tttui.com" target="_blank">2022久久国产精品免费热麻豆</a>| <a href="http://2886868.com" target="_blank">久久99热精品免费观看动漫</a>| <a href="http://1000hu.com" target="_blank">免费一区二区三区</a>| <a href="http://bjtjchem.com" target="_blank">色猫咪免费人成网站在线观看 </a>| <a href="http://51porn3.com" target="_blank">亚洲精品午夜无码电影网</a>| <a href="http://jjv5.com" target="_blank">亚洲熟妇无码另类久久久</a>| <a href="http://hnqkzj.com" target="_blank">在线亚洲人成电影网站色www </a>| <a href="http://www621f.com" target="_blank">国产精品免费网站</a>| <a href="http://shcxsoft.com" target="_blank">动漫黄网站免费永久在线观看</a>| <a href="http://www-533999.com" target="_blank">91精品免费国产高清在线</a>| <a href="http://youtobey.com" target="_blank">性做久久久久久免费观看</a>| <a href="http://3c3w.com" target="_blank">国产精品免费视频网站</a>| <a href="http://359777b.com" target="_blank">少妇亚洲免费精品</a>| <a href="http://wxyz2.com" target="_blank">久久国产亚洲精品麻豆</a>| <a href="http://ettedia.com" target="_blank">亚洲网址在线观看你懂的</a>| <a href="http://8099456.com" target="_blank">亚洲另类视频在线观看</a>| <a href="http://sk7758.com" target="_blank">亚洲高清毛片一区二区</a>| <a href="http://yyfass.com" target="_blank">免费手机在线看片</a>| <a href="http://010youhua.com" target="_blank">免费看少妇高潮成人片</a>| <a href="http://sdkjkj.com" target="_blank">四虎1515hh永久久免费</a>| <a href="http://codecampo.com" target="_blank">日韩伦理片电影在线免费观看</a>| <a href="http://www96008.com" target="_blank">免费人成无码大片在线观看</a>| <a href="http://yhanalati.com" target="_blank">中文字幕不卡亚洲</a>| <a href="http://bbyy7.com" target="_blank">亚洲永久永久永久永久永久精品</a>| <a href="http://xmllhb.com" target="_blank">亚洲三级视频在线</a>| <a href="http://laxdz.com" target="_blank">西西人体大胆免费视频</a>| <a href="http://www-533999.com" target="_blank">久久久WWW免费人成精品</a>| <a href="http://zjhmpaper.com" target="_blank">99蜜桃在线观看免费视频网站</a>| <a href="http://www77714.com" target="_blank">青青视频观看免费99</a>| <a href="http://guanxianedu.com" target="_blank">国产美女被遭强高潮免费网站</a>| <a href="http://wwwp784.com" target="_blank">亚洲视频人成在线播放</a>| <a href="http://15nw.com" target="_blank">久久久久亚洲精品无码蜜桃 </a>| <a href="http://ssdtsz.com" target="_blank">久久久精品国产亚洲成人满18免费网站</a>| <a href="http://ac839.com" target="_blank">亚洲精品无码高潮喷水在线</a>| <a href="http://glhrsydc.com" target="_blank">亚洲国产视频一区</a>| <a href="http://niutextile.com" target="_blank">婷婷国产偷v国产偷v亚洲</a>| <a href="http://ywzms.com" target="_blank">99免费精品视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>