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

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

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

    隨筆 - 17  文章 - 84  trackbacks - 0
    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    如非特別說(shuō)明,所有文章均為原創(chuàng)。如需引用,請(qǐng)注明出處
    Email:liangtianyu@gmail.com
    MSN:terry.liangtianyu@hotmail.com

    常用鏈接

    留言簿(4)

    隨筆分類(12)

    隨筆檔案(17)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 51838
    • 排名 - 961

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

          Lucene.Net 2.1版本還沒(méi)有正式發(fā)布,但可以從SVN中下載獲得。在此版本中,當(dāng)對(duì)Java版本建立的索引文檔進(jìn)行搜索時(shí),會(huì)有異常拋出。經(jīng)過(guò)我調(diào)試和對(duì)比,發(fā)現(xiàn)是因?yàn)镴ava中Long.parseLong(String s,int radix),Long.toString(long i,int radix)與.Net中的Convert.ToInt64(String,int32),Convert.ToString(int64,int32)是不同的。具體差異請(qǐng)查找相關(guān)文檔,下面我只給出解決方案。
          在Lucene.Net 2.1工程中的SupportClass.cs中添加如下代碼:

           //實(shí)現(xiàn)Java的Long.parseLong(String s,int radix)

             public static Int64 ConvertToInt64(string s, int fromBase)
             {
                  Int64 result = 0;

                  for (int i = (s.Length-1),j=0; i >=0; i--,j++)
                  {
                      char ch = char.ToLower(s[i]);

                      int v = char.IsDigit(ch)==true?int.Parse(ch.ToString()):(10+(int)(ch-'a'));

                      result = result + Convert.ToInt64(v * Math.Pow(fromBase, j));
                  }

                  return result;
              }


          //實(shí)現(xiàn)Java的Long.toString(long i,int radix)
          
          public static string ConvertToString(long l, int fromBase)
          {
                  int maxP =(int) Math.Floor(Math.Log(l,fromBase));
                  int maxN = (int)Math.Floor(l / Math.Pow(fromBase, maxP));

                  char[] chs = new char[maxP+1];

                  chs[0] = (maxN >= 0 && maxN <= 9) ? char.Parse(maxN.ToString()) : (char)((int)('a')+(maxN - 10));

                  long n1 = (long)(l - maxN*Math.Pow(fromBase, maxP));
                  long temp=n1;

                  for (int i = (maxP-1),j=1; i >= 0;i--,j++)
                  {
                      int n2 = (int)Math.Floor(temp/Math.Pow(fromBase,i));

                      chs[j]=(n2>=0 && n2<=9)?char.Parse(n2.ToString()):(char)((int)('a')+(n2-10));

                      temp=(long)(temp-n2*Math.Pow(fromBase,i));
                  }

                  return new string(chs);
              }

           這樣替換Lucene.Net中的相關(guān)代碼,就可以了。而且經(jīng)過(guò)測(cè)試,發(fā)現(xiàn).Net版本的查詢速度比Java版本的快很多,很搞不清楚。

    posted on 2007-05-15 17:16 Terry Liang 閱讀(1975) 評(píng)論(6)  編輯  收藏 所屬分類: Lucene 2.1研究

    FeedBack:
    # re: 基于Lucene 2.1的研究:Lucene.Net版本Bug修改 2007-07-11 13:35 regedit
    請(qǐng)問(wèn)哪里有2.1版下載?給偶一個(gè)吧?
    regedit.email@gmail.com  回復(fù)  更多評(píng)論
      
    # re: 基于Lucene 2.1的研究:Lucene.Net版本Bug修改 2007-07-11 14:00 Terry Liang
    # re: 基于Lucene 2.1的研究:Lucene.Net版本Bug修改 2007-07-14 14:06 regedit
    怎么下載?有沒(méi)有打包后的文件?  回復(fù)  更多評(píng)論
      
    # re: 基于Lucene 2.1的研究:Lucene.Net版本Bug修改 2007-07-16 07:46 Terry Liang
    @regedit
    我就是一個(gè)一個(gè)文件下的  回復(fù)  更多評(píng)論
      
    # re: 基于Lucene 2.1的研究:Lucene.Net版本Bug修改 2007-08-31 00:02 小S
    裝一個(gè)TortoiseSVN 啥都搞定  回復(fù)  更多評(píng)論
      
    # re: 基于Lucene 2.1的研究:Lucene.Net版本Bug修改 2007-08-31 07:59 Terry Liang
    @小S
    非常感謝!  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲欧美黑人猛交群| 在线观看无码AV网站永久免费| 亚洲精品无码一区二区| 婷婷精品国产亚洲AV麻豆不片 | 亚洲国产另类久久久精品| 四虎成人免费影院网址| 91黑丝国产线观看免费| 无码国产精品一区二区免费模式| 一级特黄a大片免费| 久久久久亚洲国产AV麻豆| 亚洲一区二区三区在线网站| 精品亚洲成a人片在线观看 | 韩国免费A级毛片久久| 边摸边吃奶边做爽免费视频网站| 中文字幕在线观看亚洲日韩| 亚洲校园春色小说| 精品亚洲麻豆1区2区3区| 亚洲成在人线av| 国产精品亚洲一区二区三区在线 | 久久免费动漫品精老司机| 国产一级在线免费观看| 一级做a爱片特黄在线观看免费看| 99亚洲男女激情在线观看| 亚洲国产欧洲综合997久久| 亚洲影院天堂中文av色| 亚洲最大的成人网| 亚洲人片在线观看天堂无码| 亚洲一卡2卡三卡4卡无卡下载 | 永久免费看bbb| 日本最新免费不卡二区在线| 无码免费午夜福利片在线 | 亚洲美女视频免费| 亚洲精品免费在线| 亚洲国产精品网站久久| 亚洲男女性高爱潮网站| 亚洲一区二区三区91| 中日韩亚洲人成无码网站| 亚洲欧美成aⅴ人在线观看| 亚洲av日韩av永久无码电影| 国产精品亚洲综合一区在线观看| 国产精品亚洲а∨天堂2021|