??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV无码XXX麻豆艾秋,超清首页国产亚洲丝袜,亚洲成综合人影院在院播放http://www.tkk7.com/Liangtianyu/category/23267.htmlzh-cnWed, 26 Dec 2007 07:12:24 GMTWed, 26 Dec 2007 07:12:24 GMT60Lucene 2.1研究Q发布NLucene-2.1http://www.tkk7.com/Liangtianyu/archive/2007/12/26/170446.htmlTerry LiangTerry LiangWed, 26 Dec 2007 00:38:00 GMThttp://www.tkk7.com/Liangtianyu/archive/2007/12/26/170446.htmlhttp://www.tkk7.com/Liangtianyu/comments/170446.htmlhttp://www.tkk7.com/Liangtianyu/archive/2007/12/26/170446.html#Feedback3http://www.tkk7.com/Liangtianyu/comments/commentRss/170446.htmlhttp://www.tkk7.com/Liangtianyu/services/trackbacks/170446.html发布个h修改的基?Net 3.5的Lucene 2.1版本Q经q测试,也在实际目中应用过Q如有需要请发邮件给我:liangtianyu@gmail.com?/p>

Terry Liang 2007-12-26 08:38 发表评论
]]>
Lucene 2.1研究Q对字符的判?/title><link>http://www.tkk7.com/Liangtianyu/archive/2007/07/02/127415.html</link><dc:creator>Terry Liang</dc:creator><author>Terry Liang</author><pubDate>Mon, 02 Jul 2007 00:14:00 GMT</pubDate><guid>http://www.tkk7.com/Liangtianyu/archive/2007/07/02/127415.html</guid><wfw:comment>http://www.tkk7.com/Liangtianyu/comments/127415.html</wfw:comment><comments>http://www.tkk7.com/Liangtianyu/archive/2007/07/02/127415.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.tkk7.com/Liangtianyu/comments/commentRss/127415.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Liangtianyu/services/trackbacks/127415.html</trackback:ping><description><![CDATA[下面是我ȝ出来的Lucene中对字符cd的判断正则表辑ּQ?br><br>用于判断Unicode LetterQ?br><br>      String UnicodeLetterPattern = "[(\u0041-\u005a)|(\u0061-\u007a)|(\u00c0-\u00d6)|(\u00d8-\u00f6)|(\u00f8-\u00ff)|(\u0100-\u1fff)]";<br><br>用于判断亚洲语言字符Q中国,日本Q韩国)Q?br><br>        String UnicodeCJPattern = "[(\u3040-\u318f)|(\u3300-\u337f)|(\u3400-\u3d2d)|(\u4e00-\u9fff)|(\uf900-\ufaff)|(\uac00-\ud7af)]";<br><br>用于判断Unicode中的数字Q?br><br>        String UnicodeDigitPattern = "[(\u0030-\u0039)|(\u0660-\u0669)|(\u06f0-\u06f9)|(\u0966-\u096f)|(\u09e6-\u09ef)|(\u0a66-\u0a6f)|(\u0ae6-\u0aef)|(\u0b66-\u0b6f)|(\u0be7-\u0bef)|(\0c66-\u0c6f)|(\u0ce6-\u0cef)|(\u0d66-\u0d6f)|(\u0e50-\u0e59)|(\u0ed0-\u0ed9)|(\u1040-\u1049)]"; <img src ="http://www.tkk7.com/Liangtianyu/aggbug/127415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Liangtianyu/" target="_blank">Terry Liang</a> 2007-07-02 08:14 <a href="http://www.tkk7.com/Liangtianyu/archive/2007/07/02/127415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene 2.1研究Q检?/title><link>http://www.tkk7.com/Liangtianyu/archive/2007/06/20/125373.html</link><dc:creator>Terry Liang</dc:creator><author>Terry Liang</author><pubDate>Wed, 20 Jun 2007 08:50:00 GMT</pubDate><guid>http://www.tkk7.com/Liangtianyu/archive/2007/06/20/125373.html</guid><wfw:comment>http://www.tkk7.com/Liangtianyu/comments/125373.html</wfw:comment><comments>http://www.tkk7.com/Liangtianyu/archive/2007/06/20/125373.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/Liangtianyu/comments/commentRss/125373.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Liangtianyu/services/trackbacks/125373.html</trackback:ping><description><![CDATA[<p><span>索前Q需要对索字W串q行分析Q这是由</span><span>QueryParser</span><span>来完成的。ؓ了保证查询的正确性,最好用创徏索引文g时同L分析器?/span><span>QueryParser</span><span>解析字符串时Q可以指定查询域Q实际可以在字符串中指定一个或多个域。例如:“</span><span>Info:</span><span>电视?/span><span> AND ID:<st1:chmetcnv TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3329" UnitName="”" w:st="on">3329<span><span>”</span></span></st1:chmetcnv><span>Q?#8220;</span>Info:</span><span>电视?#8221;Q?#8220;电视?#8221;Q假如不指定默认域,׃在默认域查询?/span></p> <p> </p> <p><span>QueryParser</span><span>调用静态方?/span><span>Parse</span><span>后会q回</span><span>Query</span><span>的实例,原子查询。例如:“</span><span>Info:</span><span>电视?/span><span> AND ID:<st1:chmetcnv TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3329" UnitName="”" w:st="on">3329<span><span>”</span></span></st1:chmetcnv><span>会返?/span>BooleanQuery</span><span>Q?#8220;</span><span>Info:</span><span>电视?#8221;?#8220;电视?#8221;会返?/span><span>PhraseQuery</span><span>Q?#8220;?#8221;会返?/span><span>TermQuery</span><span>?/span></p> <p> </p> <p><span>Lucene</span><span>内徏</span><span>Query</span><span>对象Q?/span></p> <p> </p> <p><span>TermQuery</span><span>Q词条查询。通过Ҏ个词条的指定Q实现检索烦引中存在该词条的所有文?/span></p> <p><span>BooleanQuery</span><span>Q布查询?/span><span>Lucene</span><span>中包含逻辑关系Q?#8220;?#8221;Q?#8220;?#8221;Q?#8220;?#8221;的复杂查询,最l都会表C成</span><span>BooleanQuery</span><span>。布查询就是一个由多个子句和子句之间组成的布尔逻辑所l成的查询?/span></p> <p><span>RangeQuery</span><span>Q范围查询。这U范围可以是日期Q时_数字Q大等{?/span></p> <p><span>PrefixQuery</span><span>Q前~查询?/span></p> <p><span>PhraseQuery</span><span>Q短语查询。默认ؓ完全匚wQ但可以指定坡度Q?/span><span>Slop</span><span>Q默认ؓ</span><span>0</span><span>Q改变范围。比?/span><span>Slop=1</span><span>Q检索短语ؓ“电台”Q那么在“电台”中间有一个字的也可以被查扑և来,比如“电视?#8221;?/span></p> <p><span>MultiPhraseQuery</span><span>Q多短语查询?/span></p> <p><span>FuzzyQuery</span><span>Q模p查询。模p查询用的匚w法?/span><span>levenshitein</span><span>法。此法在比较两个字W串Ӟ动作分?/span><span>3</span><span>U:加一个字母(</span><span>Insert</span><span>Q,删一个字母(</span><span>Delete</span><span>Q,改变一个字母(</span><span>Substitute</span><span>Q?/span></p> <p><span>WildcardQuery</span><span>Q通配W查询?#8220;</span><span>*</span><span>”可C?/span><span>0</span><span>到多个字W,“Q?#8221;表示单个字符?/span></p> <p><span>SpanQuery</span><span>Q跨度查询。此cMؓ抽象cR?/span></p> <p><span>SpanTermQuery</span><span>Q检索效果完全同</span><span>TermQuery</span><span>Q但内部会记录一些位|信息,?/span><span>SpanQuery</span><span>的其?/span><span>API</span><span>使用Q是其它属于</span><span>SpanQuery</span><span>?/span><span>Query</span><span>的基?/span></p> <p><span>SpanFirstQuery</span><span>Q查找方式ؓ?/span><span>Field</span><span>的内容v始位|开始,在一个固定的宽度内查找所指定的词条?/span></p> <p><span>SpanNearQuery</span><span>Q功能类?/span><span>PharaseQuery</span><span>?/span><span>SpanNearQuery</span><span>查找所匚w的不一定是短语Q还有可能是另一?/span><span>SpanQuery</span><span>的查询结果作为整体考虑Q进行嵌套查询?/span></p> <p><span>SpanOrQuery</span><span>Q把所?/span><span>SpanQuery</span><span>查询l果l合hQ作为检索结果?/span></p> <p><span>SpanNotQuery</span><span>Q从W一?/span><span>SpanQuery</span><span>查询l果中,LW二?/span><span>SpanQuery</span><span>查询l果Q作为检索结果?/span></p> <p> </p> <p><span>BooleanClause</span><span>用于表示布尔查询子句关系的类Q包括:</span><span>BooleanClause.Occur.MUST</span><span>Q?/span><span>BooleanClause.Occur.MUST_NOT</span><span>Q?/span><span>BooleanClause.Occur.SHOULD</span><span>。有以下</span><span>6</span><span>U组合:</span></p> <p><span><span>1Q?/span></span><span>MUST</span><span>?/span><span>MUST</span><span>Q取得连个查询子句的交集?/span></p> <p><span><span>2Q?/span></span><span>MUST</span><span>?/span><span>MUST_NOT</span><span>Q表C查询结果中不能包含</span><span>MUST_NOT</span><span>所对应得查询子句的索结果?/span></p> <p><span><span>3Q?/span></span><span>MUST_NOT</span><span>?/span><span>MUST_NOT</span><span>Q无意义Q检索无l果?/span></p> <p><span><span>4Q?/span></span><span>SHOULD</span><span>?/span><span>MUST</span><span>?/span><span>SHOULD</span><span>?/span><span>MUST_NOT</span><span>Q?/span><span>SHOULD</span><span>?/span><span>MUST</span><span>q用Ӟ无意义,l果?/span><span>MUST</span><span>子句的检索结果。与</span><span>MUST_NOT</span><span>q用Ӟ功能?/span><span>MUST</span><span>?/span></p> <p><span><span>5Q?/span></span><span>SHOULD</span><span>?/span><span>SHOULD</span><span>Q表C?#8220;?#8221;关系Q最l检索结果ؓ所有检索子句的q?/span></p> <p> </p> <p> </p> <p> </p> <img src ="http://www.tkk7.com/Liangtianyu/aggbug/125373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Liangtianyu/" target="_blank">Terry Liang</a> 2007-06-20 16:50 <a href="http://www.tkk7.com/Liangtianyu/archive/2007/06/20/125373.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene 2.1研究Q文件存?/title><link>http://www.tkk7.com/Liangtianyu/archive/2007/06/14/124321.html</link><dc:creator>Terry Liang</dc:creator><author>Terry Liang</author><pubDate>Thu, 14 Jun 2007 06:45:00 GMT</pubDate><guid>http://www.tkk7.com/Liangtianyu/archive/2007/06/14/124321.html</guid><wfw:comment>http://www.tkk7.com/Liangtianyu/comments/124321.html</wfw:comment><comments>http://www.tkk7.com/Liangtianyu/archive/2007/06/14/124321.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.tkk7.com/Liangtianyu/comments/commentRss/124321.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Liangtianyu/services/trackbacks/124321.html</trackback:ping><description><![CDATA[     摘要:   Lucene 2.10索引文gQ?TermQ项。ؓ分词后最单位,具体和用的分析器有养ILucene内置为单字?FieldQ域。相当于数据库表的字Dc?DocumentQ文。域信息的集合?SegmentQ段。一个完整定1索引?  文g名称 ...  <a href='http://www.tkk7.com/Liangtianyu/archive/2007/06/14/124321.html'>阅读全文</a><img src ="http://www.tkk7.com/Liangtianyu/aggbug/124321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Liangtianyu/" target="_blank">Terry Liang</a> 2007-06-14 14:45 <a href="http://www.tkk7.com/Liangtianyu/archive/2007/06/14/124321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene 2.1研究Q倒排序基本常?/title><link>http://www.tkk7.com/Liangtianyu/archive/2007/06/11/123281.html</link><dc:creator>Terry Liang</dc:creator><author>Terry Liang</author><pubDate>Mon, 11 Jun 2007 00:14:00 GMT</pubDate><guid>http://www.tkk7.com/Liangtianyu/archive/2007/06/11/123281.html</guid><wfw:comment>http://www.tkk7.com/Liangtianyu/comments/123281.html</wfw:comment><comments>http://www.tkk7.com/Liangtianyu/archive/2007/06/11/123281.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/Liangtianyu/comments/commentRss/123281.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Liangtianyu/services/trackbacks/123281.html</trackback:ping><description><![CDATA[倒排文gQInverted fileQ描qC一个词w合(TERMSQ元素和一个文档集合(DOCSQ元素对应关pȝ数据l构。在倒排文g中,可以直接l出一个Term出现在哪些Document中,和在某个Document中出现的位置和频率。在Lucene 2.1中InvertDoucment会对文q行倒排处理?br>下面是信息检索研I中常用的几个相关量Q?br>  <p><span>N</span><span>Q文档集合的大小</span></p> <p><span>M</span><span>Q词w合的大小</span></p> <p><span>S<sub>j</sub>=|PL</span><span>Q?/span><span>t<sub>j</sub></span><span>Q?/span><span>|</span><span>Q词?/span><span>t<sub>j</sub></span><span>所涉及文的个?/span></p> <p><span>DF</span><span>Q?/span><span>t<sub>j</sub></span><span>Q?/span><span>=s<sub>j</sub>/N</span><span>Q词?/span><span>t<sub>j</sub></span><span>的文频?/span></p> <p><span>IDF</span><span>Q?/span><span>t<sub>j</sub></span><span>Q?/span><span>=-logDF</span><span>Q?/span><span>t<sub>j</sub></span><span>Q:倒置文频率Q其D表C出现的频率高</span></p> <p><span>f<sub>i,j</sub></span><span>Q第</span><span>j</span><span>个词?/span><span>t<sub>j</sub></span><span>在第</span><span>i</span><span>个文?/span><span>d<sub>i</sub></span><span>中出现的ơ数</span></p> <p><span>T<sub>N</sub></span><span>=<img style="WIDTH: 26px; HEIGHT: 47px" height=47 alt="" src="http://www.tkk7.com/images/blogjava_net/liangtianyu/image001.gif" width=26 border=0><span> <img height=39 alt="" src="http://www.tkk7.com/images/blogjava_net/liangtianyu/image002.gif" width=21 border=0></span>f<sub>i,j</sub></span><span>Q系l所有文分解后包含词项的总量Q包括重复,即一个多重集Q?span>multi-set</span>Q)</span></p> <p><span>TF</span><span>Q?span>t<sub>j</sub></span>Q?span>=</span>Q?img height=34 alt="" src="http://www.tkk7.com/images/blogjava_net/liangtianyu/image003.gif" width=22 border=0><span><span> </span>f<sub>i</sub></span><sub>Q?span>j</span></sub>Q?span>/T<sub>N</sub></span>Q词?span>t<sub>j</sub></span>在文中出现的频度(词频Q?/span></p> <p><span>ITF</span><span>Q?span>t<sub>j</sub></span>Q?span>=logTF</span>Q?span>t<sub>j</sub></span>Q:倒置词频Q越表C出现的频率高</span></p> 倒排文g分ؓ两部分:W一部分是由不同词项l成的烦引,UCؓ词表QVocabularyQ,W二部分由每个词出现过的文集合构成,UCؓ记录文gQPosting FileQ,每个词项的对应部分称为倒排表(Posting ListsQ,可以通过词表讉K? <img src ="http://www.tkk7.com/Liangtianyu/aggbug/123281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Liangtianyu/" target="_blank">Terry Liang</a> 2007-06-11 08:14 <a href="http://www.tkk7.com/Liangtianyu/archive/2007/06/11/123281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lucene 2.1研究Q烦引文件格式说?/title><link>http://www.tkk7.com/Liangtianyu/archive/2007/06/08/122757.html</link><dc:creator>Terry Liang</dc:creator><author>Terry Liang</author><pubDate>Fri, 08 Jun 2007 00:07:00 GMT</pubDate><guid>http://www.tkk7.com/Liangtianyu/archive/2007/06/08/122757.html</guid><wfw:comment>http://www.tkk7.com/Liangtianyu/comments/122757.html</wfw:comment><comments>http://www.tkk7.com/Liangtianyu/archive/2007/06/08/122757.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/Liangtianyu/comments/commentRss/122757.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Liangtianyu/services/trackbacks/122757.html</trackback:ping><description><![CDATA[l过大半个月的努力,l于完成了Lucene.Net 2.1版本的改造。经试可以完全兼容Java版,生成的烦引文件与Java版的完全一P查询效率很高Q不q徏立烦引的效率相对很低。当Ӟ下一步我会针对相关问题进行改q?br><br>segmentQ代表一个完整的索引D?br>.fnmQDocument中所有Field的信息,在FieldInfos中写?br>.fdtQ存储具有Store.YES属性的Field的数据,包括Q数量,~号和长?br>.fdxQ存储Document?fdt中的位置<br>.tisQ存储分词后的词条(TermQ?br>.tiiQtis文g的烦引文Ӟ表明了每个tis文g中的词条的位|?br>.cfsQ复合烦引文件。徏立烦引时假如采取W合模式Q则以上所有文仉回存储在.cfs文g? <img src ="http://www.tkk7.com/Liangtianyu/aggbug/122757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Liangtianyu/" target="_blank">Terry Liang</a> 2007-06-08 08:07 <a href="http://www.tkk7.com/Liangtianyu/archive/2007/06/08/122757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ZLucene 2.1研究Q时间的处理http://www.tkk7.com/Liangtianyu/archive/2007/05/17/118043.htmlTerry LiangTerry LiangThu, 17 May 2007 04:00:00 GMThttp://www.tkk7.com/Liangtianyu/archive/2007/05/17/118043.htmlhttp://www.tkk7.com/Liangtianyu/comments/118043.htmlhttp://www.tkk7.com/Liangtianyu/archive/2007/05/17/118043.html#Feedback2http://www.tkk7.com/Liangtianyu/comments/commentRss/118043.htmlhttp://www.tkk7.com/Liangtianyu/services/trackbacks/118043.html   Java版的LuceneҎ间的处理?Net版中的有很大不同Q下面我l出org.apache.lucene.document包下DateToolscȝ.Net完整实现?br>   public class DateTools
    {
        private static readonly string YEAR_FORMAT = "yyyy";
        private static readonly string MONTH_FORMAT = "yyyyMM";
        private static readonly string DAY_FORMAT = "yyyyMMdd";
        private static readonly string HOUR_FORMAT = "yyyyMMddHH";
        private static readonly string MINUTE_FORMAT = "yyyyMMddHHmm";
        private static readonly string SECOND_FORMAT = "yyyyMMddHHmmss";
        private static readonly string MILLISECOND_FORMAT = "yyyyMMddHHmmssfff";
        public static readonly DateTime BASE_UNIVERSAL_TIME = DateTime.Parse("January 1, 1970, 00:00:00 GMT").ToUniversalTime();

 
        public static string TimeToString(long l, Resolution resolution)
        {
            DateTime dt = LongToDateTime(l);

            string result = string .Empty ;

            switch (resolution)
            {
                case Resolution.YEAR:
                    result = dt.ToString(YEAR_FORMAT);

                    break;
                case Resolution.MONTH:
                    result = dt.ToString(MONTH_FORMAT);

                    break;
                case Resolution.DAY:
                    result = dt.ToString(DAY_FORMAT);

                    break;
                case Resolution.HOUR:
                    result = dt.ToString(HOUR_FORMAT);

                    break;
                case Resolution.MINUTE:
                    result = dt.ToString(MINUTE_FORMAT);

                    break;
                case Resolution.SECOND:
                    result = dt.ToString(SECOND_FORMAT);

                    break;
                case Resolution.MILLISECOND:
                    result = dt.ToString(MILLISECOND_FORMAT);

                    break;
            }

            return result;
        }

        public static string TimeToString(DateTime time, Resolution resolution)
        {
            return TimeToString(DateTimeToLong(time), resolution);
        }

        public static long Round(long time, Resolution resolution)
        {
            DateTime dt = BASE_UNIVERSAL_TIME.AddMilliseconds(time).ToUniversalTime();

            switch (resolution)
            {
                case Resolution.YEAR:
                    dt = dt.AddMonths(1 - dt.Month).AddDays(1 - dt.Day).AddHours(0 - dt.Hour).AddMinutes(0 - dt.Minute).AddSeconds(0 - dt.Second).AddMilliseconds(0 - dt.Millisecond);

                    break;
                case Resolution.MONTH:
                    dt = dt.AddDays(1 - dt.Day).AddHours(0 - dt.Hour).AddMinutes(0 - dt.Minute).AddSeconds(0 - dt.Second).AddMilliseconds(0 - dt.Millisecond);

                    break;
                case Resolution.DAY:
                    dt = dt.AddHours(0 - dt.Hour).AddMinutes(0 - dt.Minute).AddSeconds(0 - dt.Second).AddMilliseconds(0 - dt.Millisecond);

                    break;
                case Resolution.HOUR:
                   dt = dt.AddMinutes(0 - dt.Minute).AddSeconds(0 - dt.Second).AddMilliseconds(0 - dt.Millisecond);

                    break;
                case Resolution.MINUTE:
                    dt = dt.AddSeconds(0 - dt.Second) .AddMilliseconds(0 - dt.Millisecond);

                    break;
                case Resolution.SECOND:
                    dt = dt.AddMilliseconds(0 - dt.Millisecond);

                    break;
                case Resolution.MILLISECOND:
                    break;
            }

            return DateTimeToLong(dt);
        }

        public static DateTime Round(DateTime date, Resolution resolution)
        {
            return LongToDateTime(Round(DateTimeToLong(date), resolution));
        }

        public static long DateTimeToLong(DateTime time)
        {
            return (long)(time.ToUniversalTime() - BASE_UNIVERSAL_TIME).TotalMilliseconds;
        }

        public static DateTime LongToDateTime(long l)
        {
            return BASE_UNIVERSAL_TIME.AddMilliseconds(l).ToUniversalTime();
        }

        public enum Resolution
        {
            YEAR,
            MONTH,
            DAY,
            HOUR,
            MINUTE,
            SECOND,
            MILLISECOND
        }
    }



Terry Liang 2007-05-17 12:00 发表评论
]]>
ZLucene 2.1的研IӞLucene.Net版本Bug修改http://www.tkk7.com/Liangtianyu/archive/2007/05/15/117656.htmlTerry LiangTerry LiangTue, 15 May 2007 09:16:00 GMThttp://www.tkk7.com/Liangtianyu/archive/2007/05/15/117656.htmlhttp://www.tkk7.com/Liangtianyu/comments/117656.htmlhttp://www.tkk7.com/Liangtianyu/archive/2007/05/15/117656.html#Feedback6http://www.tkk7.com/Liangtianyu/comments/commentRss/117656.htmlhttp://www.tkk7.com/Liangtianyu/services/trackbacks/117656.html      Lucene.Net 2.1版本q没有正式发布,但可以从SVN中下载获得。在此版本中Q当对Java版本建立的烦引文进行搜索时Q会有异常抛出。经q我调试和对比,发现是因为Java中Long.parseLong(String sQint radix)QLong.toString(long iQint radix)?Net中的Convert.ToInt64(StringQint32)QConvert.ToString(int64Qint32)是不同的。具体差异请查找相关文档Q下面我只给x案?br>      在Lucene.Net 2.1工程中的SupportClass.cs中添加如下代码:

       //实现Java的Long.parseLong(String sQint 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;
          }


      //实现Java的Long.toString(long iQint 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);
          }

       q样替换Lucene.Net中的相关代码Q就可以了。而且l过试Q发?Net版本的查询速度比Java版本的快很多Q很搞不清楚?/p>

Terry Liang 2007-05-15 17:16 发表评论
]]>
Lucene数据索引搜烦CZhttp://www.tkk7.com/Liangtianyu/archive/2007/04/30/114815.htmlTerry LiangTerry LiangMon, 30 Apr 2007 08:43:00 GMThttp://www.tkk7.com/Liangtianyu/archive/2007/04/30/114815.htmlhttp://www.tkk7.com/Liangtianyu/comments/114815.htmlhttp://www.tkk7.com/Liangtianyu/archive/2007/04/30/114815.html#Feedback3http://www.tkk7.com/Liangtianyu/comments/commentRss/114815.htmlhttp://www.tkk7.com/Liangtianyu/services/trackbacks/114815.html阅读全文

Terry Liang 2007-04-30 16:43 发表评论
]]>
վ֩ģ壺 avƬ߹ۿ| ߹ۿĻɫַ| ޾Ʒ| ɫ͵Ʒһ| ÿձƬ35| avavav߲| þƵվ| AVۺɫһAV| ĻƬa| Ʒһ߹ۿ| ѿƬ| ޹Ʒһž| һëƬһëƬëƬ | 91ƷƵ| ޳˸| ĻƵֻѿ| Ʒ޾Ʒ| žƷƵվ| ۺһۺͼ| 99ƷƵ߹ۿƬһһ | ۺ޹| ƵƷ| ŷպ| վѹۿ| һƵѹۿ| Aר߹ۿq| xxxxxƵ| Ʒһ| պձ| ĻmvӰ| պƬӰ| Ļ޵Ӱ| freežž| ѹۿ˳վ| þùƷۺ| ߹ۿվ| ɫҹƵ| һĻ| ޾Ʒ99þþþĻ| ĻƵ| պһƵ |