??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品美女,亚洲色偷偷综合亚洲AVYP,午夜亚洲乱码伦小说区69堂http://m.tkk7.com/tim-wu/zh-cnSun, 11 May 2025 04:48:52 GMTSun, 11 May 2025 04:48:52 GMT60Lucene的烦(ch)引结构图http://m.tkk7.com/tim-wu/archive/2008/02/27/182532.html鹏飞万里鹏飞万里Wed, 27 Feb 2008 10:14:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/02/27/182532.htmlhttp://m.tkk7.com/tim-wu/comments/182532.htmlhttp://m.tkk7.com/tim-wu/archive/2008/02/27/182532.html#Feedback0http://m.tkk7.com/tim-wu/comments/commentRss/182532.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/182532.html反向索引Q?br />

正向索引Q草E,不完全,因ؓ(f)收到field info的媄(jing)响,不同的field存储内容不同Q且fieldInfo的有些信?TOKENIZED BINARY COMPRESSED也是保存?fdt的每个document相关D늚bits?而不?fnm中)(j):


鹏飞万里 2008-02-27 18:14 发表评论
]]>
Lucene和GCJhttp://m.tkk7.com/tim-wu/archive/2008/02/14/179935.html鹏飞万里鹏飞万里Thu, 14 Feb 2008 07:27:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/02/14/179935.htmlhttp://m.tkk7.com/tim-wu/comments/179935.htmlhttp://m.tkk7.com/tim-wu/archive/2008/02/14/179935.html#Feedback0http://m.tkk7.com/tim-wu/comments/commentRss/179935.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/179935.html 直接调用操作pȝU别的nativeҎ(gu)Q相信读写性能能够极大得提高啊?br />
具体代码可见Lucene的gcj目录Q编译用ant gcj

鹏飞万里 2008-02-14 15:27 发表评论
]]>
备忘Qlucene中的ranking法http://m.tkk7.com/tim-wu/archive/2008/02/09/179504.html鹏飞万里鹏飞万里Sat, 09 Feb 2008 09:58:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/02/09/179504.htmlhttp://m.tkk7.com/tim-wu/comments/179504.htmlhttp://m.tkk7.com/tim-wu/archive/2008/02/09/179504.html#Feedback0http://m.tkk7.com/tim-wu/comments/commentRss/179504.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/179504.html说明见Similarity.java的javadoc信息Q?br />

法请参考javadoc的,它用的?a onclick="return top.js.OpenExtLink(window,event,this)" target="_blank">Vector Space Model (VSM) of Information Retrieval?

                针对一条查询语句q(query)Q一个d(document)的得分公?/div>
score(q,d)   =   coord(q,d)  ·  queryNorm(q)  ·  ?/big> ( tf(t in d)  ·  idf(t)2  ·  t.getBoost() ·  norm(t,d) )
t in q
               其中Q?/div>
               tf(t in d) 表示某个term的出现频率,定义?jin)term t出现在当前地document d的次数?那些query中给定地termQ如果出现越多次的,得分高。它在默认实现DefaultSimilarity的公式ؓ(f)
tf(t in d)   =   frequency½
               idf(t) 表示反向文频率。这个参数表CdocFreq(term t一共在多少个文中出现)的反向媄(jing)响倹{它意味着在越文档中?wbr>现的terms贡献高地分数。它在默认实现DefaultSimilarity的公式ؓ(f):
idf(t)  =   1 + log (
numDocs
–––––––––
docFreq+1
)
                coord(q,d) 是一个基于在该文中出现?jin)多个query中的terms的得?wbr>因素。文档中出现的query中的terms数量/queryd多少个query数量。典型的Q一个文包含越多地query中的terms?x)得?wbr>更高地分。This is a search time factor computed in coord(q,d) by the Similarity in effect at search time. 
                queryNorm(q) 是一个标准化参数Q它是用来区分比较不同queries时的因素Q这个因素不影响document ranking (因ؓ(f)所有的ranked document都会(x)乘(sh)相同的?Q但是不同地queriesQ或q不同地indexes中)(j)它会(x)得到不同的可用于比较的?wbr>。This is a search time factor computed by the Similarity in effect at search time. 它在默认实现DefaultSimilarity的公式ؓ(f):
queryNorm(q)   =   queryNorm(sumOfSquaredWeights)   =  
1
––––––––––––––
sumOfSquaredWeights½
                其中的sumOfSquaredWeights(of the query terms)是根据the query Weight object计算出来? For example, a boolean query computes this value as:
sumOfSquaredWeights   =   q.getBoost() 2  ·  ?/big> ( idf(t)  ·  t.getBoost() ) 2
t in q
 
                t.getBoost() 是一个term t在query q中的search time boostQ?它是在the query text (see query syntax)中指定的, 或者被应用E序直接调用setBoost()讄? 注意Q这儿没有直接的API去访问在 a multi term query的一个term的boost|但是multi terms?x)以multi TermQuery objects在一个query中被表示,因此the boost of a term in the query可以使用子query?a>getBoost()反问? 
                norm(t,d) 装(encapsulates)?jin)一?indexing time)的boost和length factors:  ???q个参数之和field中tokens的数量有?wbr>Q和term本n无关???
                          Document boost - set by calling doc.setBoost() before adding the document to the index.
                          Field boost - set by calling field.setBoost() before adding the field to a document.
                          lengthNorm(field) -。当文被加入到索引时计,Q和document的field中的tokens的数量有养I因此Q一个比较短的fields贡献更高的分数。LengthNorm  is computed by the Similarity class in effect at indexing. DefaultSimilarity中的实现?float)(1.0 / Math.sqrt(numTerms));
                    当一个文被加入索引Ӟ上述因素?x)被怹。如果文有多个fields同名Q他们的boosts数g(x)被多ơ相乘?br />  
 
norm(t,d)   =   doc.getBoost()  ·  lengthNorm(field)  ·  f.getBoost()
field f in d named as t
                     但是Q计出的norm数值在存储时是使用一个a single byte~码的。searchӞq个norm byte从index directorydQƈ且被解码回float。这个编?wbr>/解码法?x)生精度丢失?nbsp;- it is not guaranteed that decode(encode(x)) = x. For instance, decode(encode(0.89)) = 0.75. Also notice that search time is too late to modify this norm part of scoring, e.g. by using a different Similarity for search. 


鹏飞万里 2008-02-09 17:58 发表评论
]]>Lucene如何控制segments的数?http://m.tkk7.com/tim-wu/archive/2008/02/06/179380.html鹏飞万里鹏飞万里Tue, 05 Feb 2008 17:58:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/02/06/179380.htmlhttp://m.tkk7.com/tim-wu/comments/179380.htmlhttp://m.tkk7.com/tim-wu/archive/2008/02/06/179380.html#Feedback3http://m.tkk7.com/tim-wu/comments/commentRss/179380.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/179380.html 在搜索时QLucene?x)遍历这些segmentsQ以segments为基本单位独立搜索每个segments文gQ而后再把搜烦(ch)l果合ƈ?br />
建立索引文g的过E,实际是把documents文g一个个加入索引中,Lucene的做法是最开始ؓ(f)每个新加入的document独立生成一个segmentQ放在内存(sh)。而后Q当内存?sh)segments数量到达一个阙值时Q合q这些segmentsQ新生成一个segment加入文gpȝ的segments列表中?br /> 而当文gpȝ的segments数量q多Ӟ势必影响搜烦(ch)效率Q因此需要不断合q这些segments文g?br />
那么Lucene的合q策略是什么?如何保证合适的segments数量呢?

其实Lucene有两套基本的{略Q?br /> W一U策略实C码位于IndexWriter#optimize()函数Q其实就是把所有segments文g合ƈ成一个文件。合q的法是递归合ƈ列表最后的mergeFactor个segments文g直到合ƈ成一个文件。这儿mergeFactor是Lucene的一个参数?br /> btw: 从算法细节上看,其实我不是喜Ƣ这D实玎ͼ因ؓ(f)列表的最后mergeFactor个文件内容实际被扫描?jin)segmens_count/mergeFactorơ。如果分D归U_q的方式不知道是否更好,每个segment文g内容都将被扫?ceil(Log_mergeFactor(segmens_count)) 或ceil(Log_mergeFactor(segmens_count)) +1ơ,是否更好?

W二U策略实C码位于IndexWriter#maybeMergeSegments()函数中,q个代码复杂了(jin)Q它的基本策略就是要求确保合q后两个公式的成?
假定segments是个有序列表QB表示maxBufferedDocsQf(n)=ceil(log_M(ceil(n/B)))QM表示mergeFactorQ这儿maxBufferedDocs和mergeFactor是两个参?br /> 1. 如果Wi个segment的documents数量为xQ第i+1个segment的documents数量为yQ那么f(x)>f(y)一定成?br /> 2. f(n)值相同的segments的数量不得超qM?br /> 那么maybeMergeSegments()函数是如何确保这两个公式成立的呢?
1.首先Q从代码Q?br />
    protected final void maybeFlushRamSegments() throws IOException {
        
// A flush is triggered if enough new documents are buffered or
        
// if enough delete terms are buffered
        if (ramSegmentInfos.size() >= minMergeDocs
                
|| numBufferedDeleteTerms >= maxBufferedDeleteTerms) {
            flushRamSegments();
        }
    }
q儿minMergeDocs=maxBufferedDocs, 因此可以看出Q当内存?sh)缓存的segments被合q写回磁盘时生成的segment的document count{于或小于maxBufferedDocsQ即minMergeDocsQ?br /> 补充Q因为maybeMergeSegments()q行在同步代码中Q因此只要ramSegmentInfos.size==minMergerDocs(即maxBufferedDocs)׃(x)写回盘Q因此应该不存在ramSegmentInfos.size>maxBufferedDocs才写回的情况。而且Q但如果是这U情况,因ؓ(f)合ƈ后的segment文g的document countq大Q后面的maybeMergeSegments()不做合q处理直接退出,上述公式可能不成立Q那么算法将有错?/span>
----
2.
2.1 因此maybeMergeSegments()W一ơ执行时Q所有segments的document count都小于等于maxBufferedDocs。此Ӟ从i=0开始,合ƈi~i+mergeFactor-1个文Ӟ如果合ƈ后的doc count>maxBufferedDocsӞ保留Wi个segmentQ否则(h)l合q改变后的i~i+mergeFactor-1Q直到doc count>maxBufferedDocs或所有segments文g个数已经<mergeFactor?jin)。经q这样一轮的合ƈQ除?jin)最?lt;mergeFactor个的doc counts<=maxBufferedDocs文g外,其它文g的doc counts一定都>maxBufferedDocsq?lt;maxBufferedDocs*mergeFactor?jin)?br />  2.2 q时Q不理会(x)最?lt;mergeFactor个doc count<maxBufferedDocs的文Ӟ而后?.1的同理规则,合ƈ之前的文Ӟ让这些文件的最?lt;mergerFactor个segmentW合 maxBufferedDocs<doc counts<=maxBufferedDocs*mergeFactorQ之前的segment文g都符合maxBufferedDocs*mergeFactor<doc counts<=maxBufferedDocs*mergeFactor^2
2.3 重复2.2Q最后得到的列表׃(x)满上述两等式的成立
---
3
之后Q每ơ从内存~存?sh)flushZ个新的segmentӞ也就是往(xin)q个segments列表的最后增加一个doc_count<=maxBufferedDocs的文Ӟ同样执行上述步骤2q行合ƈQ能够始l保证上qC公式的成立?br /> ----
4
4.1
IndexWriter#addIndexesNoOptimize同样借鉴使用?jin)maybeMergeSegments()法Q区别此Ӟ实际是已有一个符合两公式的segments序列TQ在T之后q加上随意顺序的segments序列S。这Ӟ我们先找到S中doc count值最大的那个segmentQ计出它属于的区间f(x)Q得maxBufferedDocs*mergeFactor^x<doc counts<=maxBufferedDocs*mergeFactor^(x+1)Q而后?.2的算法合q出除了(jin)最?lt;mergerFactor个segments外, 之前所有segments都符?a. doc count>maxBufferedDocs*mergeFactor^(x+1) b.W合上述2{式?br /> btw: 因ؓ(f)q儿调用IndexWriter#addIndexesNoOptimize传入的参数是maxBufferedDocs*mergeFactor^(x+1)Q因为S所有segment的doc count都一定小于maxBufferedDocs*mergeFactor^(x+1)Q因此S的所有元素都?x)参与收~合q?br /> 4.2 最?lt;mergerFactor个doc count<maxBufferedDocs*mergeFactor^(x+1)的segments合ƈQ如果合q后的segment的doc count大于maxBufferedDocs*mergeFactor^(x+1)Q就l箋(hu)2.2步骤Q得整个队列符合上qC公式
-----

上述两种{略Q最l确保了(jin)Lucene中的segments不会(x)太多,保效率?br />
BTWQ实际上Q如果documents太多ӞLuceneq支持把docuements分成几个l,每个l用独立的进E或?sh)脑q行索引Q而后再多个目录的索引合ƈhQ具体可参考IndexWriter#addIndexesNoOptimize和IndexWriter#addIndexes函数

鹏飞万里 2008-02-06 01:58 发表评论
]]>
备忘Qlucene的一些enumcdhttp://m.tkk7.com/tim-wu/archive/2008/01/29/178355.html鹏飞万里鹏飞万里Tue, 29 Jan 2008 06:02:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/01/29/178355.htmlhttp://m.tkk7.com/tim-wu/comments/178355.htmlhttp://m.tkk7.com/tim-wu/archive/2008/01/29/178355.html#Feedback0http://m.tkk7.com/tim-wu/comments/commentRss/178355.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/178355.html         LOAD Document#getFieldable和Document#getField不会(x)q回null
        LAZY_LOAD :Lazy的Field意味着在搜索结果里q个Field的值缺省是不读取的Q只有当你真正对q个Field取值的时候才?x)去取。所以如果你要对它取|你得保证IndexReaderq没有close?Document#getField不能使用Q只能用Document#getFieldable
        NO_LOAD Document#getField和Document#getFieldable都返回nullQDocument#add不被调用?br />         LOAD_AND_BREAK cMLOADQDocument#getField和Document#getFieldable都可用,但返回后q束,Document可能没有完整的field的SetQ参考LoadFirstFieldSelector ?br />         LOAD_FOR_MERGE cMLOADQ但不压~Q何数据。只被SegmentMerger的一个FieldSelector匿名内嵌实现cM用。Document#getField和Document#getFieldable可返回null.
        SIZE q回Field的size而不是value. Size表示存储q个field需要的bytes數,string数g?*chars。size被存储ؓ(f)a binary valueQ表Cؓ(f)as an int in a byte[]Qwith the higher order byte first in [0]?br />         SIZE_AND_BREAK cMSIZEQ但立刻break from the field loading loop, i.e. stop loading further fields, after the size is loaded

======================================

Field中三大enum: Store Index和TermVectorQ?br />

       ------------------------------------
        Store.COMPRESS  Store the original field value in the index in a compressed form. This is useful for long documents and for binary valued fields.压羃存储Q?br />         Store.YES Store the original field value in the index. This is useful for short texts like a document's title which should be displayed with the results. The value is stored in its original form, i.e. no analyzer is used before it is stored. 索引文g本来只存储烦(ch)引数? 此设计将原文内容直接也存储在索引文g中,如文档的标题?br />         Store.NO  Do not store the field value in the index. 原文不存储在索引文g中,搜烦(ch)l果命中后,再根据其他附加属性如文g的PathQ数据库的主键等Q重新连接打开原文Q适合原文内容较大的情c(din)?br />         军_?jin)Field对象?this.isStored ?nbsp;       this.isCompressed
     ------------------------------------
        Index.NO Do not index the field value. This field can thus not be searched, but one can still access its contents provided it is Field.Store stored. 不进行烦(ch)引,存放不能被搜索的内容如文的一些附加属性如文cd, URL{?br />         Index.TOKENIZED Index the field's value so it can be searched. An Analyzer will be used to tokenize and possibly further normalize the text before its terms will be stored in the index. This is useful for common text. 分词索引
        Index.UN_TOKENIZED  Index the field's value without using an Analyzer, so it can be searched. As no analyzer is used the value will be stored as a single term. This is useful for unique Ids like product numbers. 不分词进行烦(ch)引,如作者名Q日期等QRod Johnson本nZ单词Q不再需要分词?/p>

        Index.NO_NORMS 不分词,建烦(ch)引。norms是什???字段???。但是Field的g像通常那样被保存,而是只取一个byteQ这栯U存储空???? Index the field's value without an Analyzer, and disable the storing of norms.  No norms means that index-time boosting and field length normalization will be disabled.  The benefit is less memory usage as norms take up one byte per indexed field for every document in the index.Note that once you index a given field <i>with</i> norms enabled, disabling norms will have no effect.  In other words, for NO_NORMS to have the above described effect on a field, all instances of that field must be indexed with NO_NORMS from the beginning.
        军_?jin)Field对象?this.isIndexed  this.isTokenized  this.omitNorms
     ------------------------------------
        Lucene 1.4.3新增的:(x)
        TermVector.NO Do not store term vectors.  不保存term vectors
        TermVector.YES Store the term vectors of each document. A term vector is a list of the document's terms and their number of occurences in that document. 保存term vectors?
        TermVector.WITH_POSITIONS Store the term vector + token position information 保存term vectors。(保存值和token位置信息Q?br />         TermVector.WITH_OFFSETS Store the term vector + Token offset information
        TermVector.WITH_POSITIONS_OFFSETS Store the term vector + Token position and offset information 保存term vectors。(保存值和Token的offsetQ?br />         军_?jin)Field对象的this.storeTermVector this.storePositionWithTermVector this.storeOffsetWithTermVector





鹏飞万里 2008-01-29 14:02 发表评论
]]>
Java7 VB2008都开始支持Lambda(Closure)?/title><link>http://m.tkk7.com/tim-wu/archive/2008/01/29/178345.html</link><dc:creator>鹏飞万里</dc:creator><author>鹏飞万里</author><pubDate>Tue, 29 Jan 2008 04:58:00 GMT</pubDate><guid>http://m.tkk7.com/tim-wu/archive/2008/01/29/178345.html</guid><wfw:comment>http://m.tkk7.com/tim-wu/comments/178345.html</wfw:comment><comments>http://m.tkk7.com/tim-wu/archive/2008/01/29/178345.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/tim-wu/comments/commentRss/178345.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tim-wu/services/trackbacks/178345.html</trackback:ping><description><![CDATA[<p>Closure: http://en.wikipedia.org/wiki/Closure_%28computer_science%29<br /> 我还比较喜欢Microsoft的一D说明,位于链接<a >http://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/Default.aspx?loc=zh</a>中,查找“<span id="xrwxsny" class="clsSubhead">Lambda 表达式和变量提升</span>”<br /> <br /> 最早接触Closure是在学javascript, 前年q写?jin)篇关于Closure对javascript内存泄露的文?a href="http://m.tkk7.com/tim-wu/archive/2006/05/29/48729.html">http://m.tkk7.com/tim-wu/archive/2006/05/29/48729.html</a><br /> 一直以是函数式语a的特性,多是.net的委托和它有几分相识Q?br /> 没想到现在Java7也要支持?jin),有兴的朋友可以去读读?x)<br /> <a >http://www.javac.info/</a><br /> 没细读,不知道Lambda在Javaq种强类型检查的语言中表现的如何?br /> <br /> 作ؓ(f)函数语言QRuby中一直都有closure的用法,<a >http://samdanielson.com/2007/3/19/proc-new-vs-lambda-in-ruby</a>有个单例子?/p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">def foo<br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  f </span><span style="color: #000000">=</span><span style="color: #000000"> Proc.new { return </span><span style="color: #000000">"</span><span style="color: #000000">return from foo from inside proc</span><span style="color: #000000">"</span><span style="color: #000000"> }<br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  f.call # control leaves foo here<br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  return </span><span style="color: #000000">"</span><span style="color: #000000">return from foo</span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />def bar<br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  f </span><span style="color: #000000">=</span><span style="color: #000000"> lambda { return </span><span style="color: #000000">"</span><span style="color: #000000">return from lambda</span><span style="color: #000000">"</span><span style="color: #000000"> }<br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  f.call # control does </span><span style="color: #0000ff">not</span><span style="color: #000000"> leave bar here<br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />  return </span><span style="color: #000000">"</span><span style="color: #000000">return from bar</span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />puts foo # prints </span><span style="color: #000000">"</span><span style="color: #000000">return from foo from inside proc</span><span style="color: #000000">"</span><span style="color: #000000"> <br /> <img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" />puts bar # prints </span><span style="color: #000000">"</span><span style="color: #000000">return from bar</span><span style="color: #000000">"</span></div> <p> 最q,ruby 1.9又提供了(jin)新的定义lambda</p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://m.tkk7.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #000000">x </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">-></span><span style="color: #000000">{puts </span><span style="color: #000000">"</span><span style="color: #000000">Hello Lambda</span><span style="color: #000000">"</span><span style="color: #000000">} </span></div> 参见 <a >http://www.infoq.com/cn/news/2008/01/new-lambda-syntax</a><br /> <br /> VB 2008也支持了(jin)Q这个链接有个例子,<span style="color: #0000ff"><strong>又是LambdaQ又是范型,Q又是委托回?/strong></span>Q很有意思:(x)<br /> http://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/Default.aspx?loc=zh<br /> VB?#8220;需要注意的一炚w制是Qlambda 表达式完全就是一个单个表辑ּ。在 Visual Basic 2008 中,(zhn)在 lambda 表达式中只能有一个单个表辑ּ。在本专栏中Q我进一步向(zhn)展C?Visual Basic 2008 中引入的一个新的三元运符Q它?yu)允许(zhn)构造条件表辑ּQ但目前的功能不支持?lambda 表达式中使用L语句?#8221;<br /> <br /> <br /> <br /> <img src ="http://m.tkk7.com/tim-wu/aggbug/178345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tim-wu/" target="_blank">鹏飞万里</a> 2008-01-29 12:58 <a href="http://m.tkk7.com/tim-wu/archive/2008/01/29/178345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>备忘:lucene的几U常用Analyzerhttp://m.tkk7.com/tim-wu/archive/2008/01/26/177742.html鹏飞万里鹏飞万里Fri, 25 Jan 2008 18:03:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/01/26/177742.htmlhttp://m.tkk7.com/tim-wu/comments/177742.htmlhttp://m.tkk7.com/tim-wu/archive/2008/01/26/177742.html#Feedback1http://m.tkk7.com/tim-wu/comments/commentRss/177742.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/177742.html

以下内容均ؓ(f)转蝲,url见具体链?

最常见的四个Analyzer,说明:  http://windshowzbf.bokee.com/3016397.html 
WhitespaceAnalyzer  仅仅是去除空|对字W没有lowcase?不支持中?br /> SimpleAnalyzer :功能ZWhitespaceAnalyzer,除去letter之外的符号全部过滤掉,q且所有的字符lowcase?不支持中?br /> StopAnalyzer: StopAnalyzer的功能超了(jin)SimpleAnalyzerQ在SimpleAnalyzer的基?增加?jin)去除StopWords的功?不支持中?cM使用一个static数组保存?sh)(jin)ENGLISH_STOP_WORDS, 太常见不index的words
StandardAnalyzer: 用Javacc定义的一套EBNFQ严的语法。有英文的处理能力同于StopAnalyzer.支持中文采用的方法ؓ(f)单字切分。未仔细比较Q不敢确定?/p>

其他的扩?
ChineseAnalyzer:来自于Lucene的sand box.性能cM于StandardAnalyzer,~点是不支持中英文؜和分?
CJKAnalyzer:chedong写的CJKAnalyzer的功能在英文处理上的功能和StandardAnalyzer相同.但是在汉语的分词上,不能qo(h)掉标点符P即用二元切?br /> TjuChineseAnalyzer: http://windshowzbf.bokee.com/3016397.html写的,功能最为强?TjuChineseAnlyzer的功能相当强?在中文分词方面由于其调用的ؓ(f)ICTCLAS的java接口.所以其在中文方面性能上同与ICTCLAS.其在英文分词上采用了(jin)Lucene的StopAnalyzer,可以去除 stopWords,而且可以不区分大写,qo(h)掉各cL点符?

 


例子:
http://www.langtech.org.cn/index.php/uid-5080-action-viewspace-itemid-68, q有单的代码分析

Analyzing "The quick brown fox jumped over the lazy dogs"

WhitespaceAnalyzer:

[The] [quick] [brown] [fox] [jumped] [over] [the] [lazy] [dogs]

SimpleAnalyzer:

[the] [quick] [brown] [fox] [jumped] [over] [the] [lazy] [dogs]

StopAnalyzer:

[quick] [brown] [fox] [jumped] [over] [lazy] [dogs]

StandardAnalyzer:

[quick] [brown] [fox] [jumped] [over] [lazy] [dogs]


Analyzing "XY&Z Corporation - xyz@example.com"

WhitespaceAnalyzer:

[XY&Z] [Corporation] [-] [xyz@example.com]

SimpleAnalyzer:

[xy] [z] [corporation] [xyz] [example] [com]

StopAnalyzer:

[xy] [z] [corporation] [xyz] [example] [com]

StandardAnalyzer:

[xy&z] [corporation] [xyz@example.com]

 

参考连?
http://macrochen.blogdriver.com/macrochen/1167942.html
http://macrochen.blogdriver.com/macrochen/1153507.html

http://my.dmresearch.net/bbs/viewthread.php?tid=8318
http://windshowzbf.bokee.com/3016397.html



鹏飞万里 2008-01-26 02:03 发表评论
]]>
备忘Qunicode & utf-8http://m.tkk7.com/tim-wu/archive/2008/01/25/177788.html鹏飞万里鹏飞万里Fri, 25 Jan 2008 08:21:00 GMThttp://m.tkk7.com/tim-wu/archive/2008/01/25/177788.htmlhttp://m.tkk7.com/tim-wu/comments/177788.htmlhttp://m.tkk7.com/tim-wu/archive/2008/01/25/177788.html#Feedback0http://m.tkk7.com/tim-wu/comments/commentRss/177788.htmlhttp://m.tkk7.com/tim-wu/services/trackbacks/177788.html
推荐
http://gceclub.sun.com.cn/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html
http://www.linuxpk.com/3821.html
=======================================
BMP的解释:(x)
http://zh.wikipedia.org/w/index.php?title=%E5%9F%BA%E6%9C%AC%E5%A4%9A%E6%96%87%E7%A8%AE%E5%B9%B3%E9%9D%A2&variant=zh-cn
http://zh.wikipedia.org/w/index.php?title=%E8%BE%85%E5%8A%A9%E5%B9%B3%E9%9D%A2&variant=zh-cn#.E7.AC.AC.E4.B8.80.E8.BC.94.E5.8A.A9.E5.B9.B3.E9.9D.A2
1个BMP?6个辅助planeQ需?1个bits.

======================================
ISO-10646与Unicode关系
http://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8%E5%AD%97%E7%AC%A6%E9%9B%86
ISO-10646术语
Unicode术语
UCS-2   BMP UTF-16
UCS-4     UTF-32
注意QUTF-16可看成是UCS-2?a title="爉" >爉。在沒有辅助q面字符前,UTF-16與UCS-2所指的是同一的意思。但當引入辅助^面字W後Q就只稱為UTF-16?jin),因?f)我们?x)?个UTF-16Q也׃?bytes保存?sh)个辅助^面字W。現在若有軟件聲Ep己支援UCS-2R碼Q那其實是暗指它不能支援辅助q面字符的委婉語?br /> ======================================
UTF-8要完整表达unicode需?bytesQ表达BMP需?bytesQ见http://en.wikipedia.org/wiki/UTF-8Q注?#8220;The range D800-DFFF is disallowed by Unicode. The encoding scheme reliably transforms values in that range, but they are not valid scalar values in Unicode. See Table 3-7 in the Unicode 5.0 standard. ”


======================================
BOM Byte Order MarkQ在UCS~码中有一个叫?ZERO WIDTH NO-BREAK SPACE"的字W,它的~码是FEFF。而FFFE在UCS中是不存在的字符Q所以不应该出现在实际传输中。UCS规范我们在传输字节流前,先传输字W?ZERO WIDTH NO-BREAK SPACE"?br /> q样如果接收者收到FEFFQ就表明q个字节是Big-Endian的;如果收到FFFEQ就表明q个字节是Little-Endian的?br /> 字符"ZERO WIDTH NO-BREAK SPACE"又被UCBOM。UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字W?ZERO WIDTH NO-BREAK SPACE"(也就是U+FEFF)的UTF-8~码是EF BB BFQ就?1101111,10111011,10111111Q。所以如果接收者收CEF BB BF开头的字节,q道这是UTF-8~码?jin)?br /> Windows是使用BOM来标记文本文件的~码方式的?br />
除了(jin)FEFFQ英文wiki http://en.wikipedia.org/wiki/UTF-8q解释说明了(jin)一些目前不?x)出现在utf-8字节中的byte倹{?br />
=========================================
Java
http://www.jorendorff.com/articles/unicode/java.html
http://gceclub.sun.com.cn/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html 完美解释java中的unicode。另外提到java中utf-8其实有两U格式,分别是标准utf-8和改良utf-8。对于文本输入,Java 2 SDK 提供用于接受“\Uxxxxxx”格式字符串的代码点输入方法,q里大写?#8220;U”表示转义序列包含六个十六q制数字Q因此允怋用增补字W。小写的“u”表示转义序列“\uxxxx”的原始格式?br /> http://dlog.cn/html/diary/showlog.vm?sid=2&cat_id=-1&log_id=557 介绍?jin)String的JDK5新增Ҏ(gu)
http://blog.csdn.net/qinysong/archive/2006/09/05/1179480.aspx q着三篇用实例说明,语言比较乱,说的也不正,但他用了(jin)做试验的java代码有点意思,能帮助思考代码中一些tricky的现象?br /> http://topic.csdn.net/u/20070928/22/5207088c-c47d-43ed-8416-26f850631cff.html 有一些回{,
http://topic.csdn.net/u/20070515/14/57af3319-28de-4851-b4cf-db65b2ead01c.html 有些试验代码Qh(hun)g?br /> http://www.w3china.org/blog/more.asp?name=hongrui&id=24817 有些java实例代码Q没l看?br />

另:(x)
Java 1.0 supports Unicode version 1.1.
Java 1.1 onwards supports Unicode version 2.0.
J2SE 1.4中的字符处理是基于Unicode 3.0标准的?br /> J2SE v 1.5 supports Unicode 4.0 character set.

而:(x)
Unicode 3.0Q?999q九(ji)月;涵蓋?jin)來自ISO 10646-1的十六位元通用字元集(UCSQ基本多文種q面QBasic Multilingual PlaneQ?

Unicode 3.1Q?001q三月;新增從ISO 10646-2定義的輔助^面(Supplementary Planes)


所以:(x)
代码点在U+0000到U+FFFF之间的就用\u0000到\uffff表示
U+10000到U+1FFFF之间的用   \ud800到\udbff中的作ؓ(f)W一个单?   用\udc00到\udfff作ؓ(f)W二单元,l合h表示
charq个概念是指\u0000到\uffff,q是占两个字?
其余的用code   pointq个概念
JDK   1.5   以上支持   Unicode   4.0Q也是   Unicode   的范围是   U+0000~U+10FFFFQ?
过   U+FFFF   的字W采用代码点Q也是   int   cd的数据)(j)来表C,具体的可?
参考一下下面这个链接的文章《Java   q_中的增补字符》,Ҏ(gu)作了(jin)很详l的?
l?http://gceclub.sun.com.cn/developer/technicalArticles/Intl/Supplementary/index_zh_CN.html


================================
http://m.tkk7.com/tim-wu/archive/2007/09/12/144550.html

================================

U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
但目前ISO和Unicodel织都不?x)规?0FFFF以上的字W?br />
代碼圍
十六進制
標量?scalar value
二進制
UTF-8
二進制 / 十六進制
a釋
000000 - 00007F
128個代?/small>
00000000 00000000 0zzzzzzz 0zzzzzzz(00-7F) ASCII{值範圍,位元i由雉?/td>
七個z 七個z
000080 - 0007FF
1920個代?/small>
00000000 00000yyy yyzzzzzz 110yyyyy(C2-DF) 10zzzzzz(80-BF) W一?a title="字节" >位元i?/a>?10開始Q接著的位元i?/a>?0開始
三個yQ二個yQ六個z 五個yQ六個z
000800 - 00FFFF
63488個代?/small>
00000000 xxxxyyyy yyzzzzzz 1110xxxx(E0-EF) 10yyyyyy 10zzzzzz W一?a title="字节" >位元i?/a>?110開始Q接著的位元i?/a>?0開始
四個xQ四個yQ二個yQ六個z 四個xQ六個yQ六個z
010000 - 10FFFF
1048576個代?/small>
000wwwxx xxxxyyyy yyzzzzzz 11110www(F0-F4) 10xxxxxx 10yyyyyy 10zzzzzz ?1110開始Q接著的位元i?/a>?0開始
三個wQ二個xQ四個xQ四個yQ二個yQ六個z 三個wQ六個xQ六個yQ六個z

================================
参考:(x)http://blog.csdn.net/qinysong/archive/2006/09/05/1179480.aspxQ但该文对unicode版本说明有误Q说明见?br />

在大U?1993 q之后开发的大多数现代编E语a都有一个特别的数据cd, 叫做 Unicode/ISO 10646-1 字符. ?Ada95 中叫 Wide_Character, ?Java 中叫 char.

ISO C 也详l说明了(jin)处理多字节编码和宽字W?(wide characters) 的机? 1994 q?9 ?Amendment 1 to ISO C 发表时又加入?jin)更? q些机制主要是ؓ(f)各类东亚~码而设计的, 它们比处?UCS 所需的要健壮得多. UTF-8 ?ISO C 标准调用多字节字W串的编码的一个例? wchar_t cd可以用来存放 Unicode 字符.



鹏飞万里 2008-01-25 16:21 发表评论
]]>
备忘: Lucene中Query语法?wi)的整?/title><link>http://m.tkk7.com/tim-wu/archive/2008/01/24/177451.html</link><dc:creator>鹏飞万里</dc:creator><author>鹏飞万里</author><pubDate>Thu, 24 Jan 2008 03:33:00 GMT</pubDate><guid>http://m.tkk7.com/tim-wu/archive/2008/01/24/177451.html</guid><wfw:comment>http://m.tkk7.com/tim-wu/comments/177451.html</wfw:comment><comments>http://m.tkk7.com/tim-wu/archive/2008/01/24/177451.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/tim-wu/comments/commentRss/177451.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tim-wu/services/trackbacks/177451.html</trackback:ping><description><![CDATA[<p>代码为QueryParser.jjQ语法ؓ(f)JavaCC实现的LL()Q?br /> 完整文Q?a >http://lucene.apache.org/java/2_0_0/queryparsersyntax.html</a><br /> <br /> 和正则一P(x)<br /> ?表示0个或1?br /> +表示一个或多个<br /> *表示0个或多个<br /> <br /> <br /> 以下是Token部分Q?br /> </p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">_NUM_CHAR::</span><span style="color: #000000">=</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000">9</span><span style="color: #000000">"</span><span style="color: #000000">] </span><span style="color: #008000">//</span><span style="color: #008000">数字</span><span style="color: #008000"><br /> </span><span style="color: #000000">_ESCAPED_CHAR::</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\\</span><span style="color: #000000">"</span><span style="color: #000000"> [ </span><span style="color: #000000">"</span><span style="color: #000000">\\</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">!</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">:</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">^</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">]</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">~</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000"> ] > //Ҏ(gu)字符Q?/span><span style="color: #000000"><br /> </span><span style="color: #000000">_TERM_START_CHAR ::</span><span style="color: #000000">=</span><span style="color: #000000">( </span><span style="color: #000000">~</span><span style="color: #000000">[ </span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">\t</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">\r</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">!</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">:</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">^</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">]</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">~</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000"> ] //TERM的v始字W,除了(jin)列出的其它字W都可以</span><span style="color: #000000"><br /> </span><span style="color: #000000">_TERM_CHAR::</span><span style="color: #000000">=</span><span style="color: #000000">( </span><span style="color: #000000"><</span><span style="color: #000000">_TERM_START_CHAR</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">_ESCAPED_CHAR</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000"> ) </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">TERM可用字W?/span><span style="color: #008000"><br /> </span><span style="color: #000000">_WHITESPACE::</span><span style="color: #000000">=</span><span style="color: #000000"> ( </span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\t</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\n</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\r</span><span style="color: #000000">"</span><span style="color: #000000">) </span><span style="color: #008000">//</span><span style="color: #008000">I格和回车,</span><span style="color: #008000"><br /> </span><span style="color: #000000"><br />  <br /> <br /> </span><span style="color: #000000"><</span><span style="color: #000000">DEFAULT</span><span style="color: #000000">></span><span style="color: #000000"> TOKEN:<br />  AND::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">AND</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">&&</span><span style="color: #000000">"</span><span style="color: #000000">)<br />  OR::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">OR</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">||</span><span style="color: #000000">"</span><span style="color: #000000">)<br />  NOT::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000">NOT</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">!</span><span style="color: #000000">"</span><span style="color: #000000">)<br />  PLUS::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000"><br />  MINUS::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">-</span><span style="color: #000000">"</span><span style="color: #000000"><br />  LPAREN::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">(</span><span style="color: #000000">"</span><span style="color: #000000"><br />  RPAREN::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">"</span><span style="color: #000000"><br />  COLON::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">:</span><span style="color: #000000">"</span><span style="color: #000000"><br />  STAR::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000"><br />  CARAT::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">^</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">后接BoostQ原?lt;CARAT:     "^" > : BoostQ后面Boost说明什么没明白</span><span style="color: #008000"><br /> </span><span style="color: #000000"> QUOTED::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000"> (~[</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">] </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\\\</span><span style="color: #000000">""</span><span style="color: #000000">)+ </span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000"> 表示?包v来的字符?字符"开始,中间׃?的符h者连着的这两个W号\"l成Q字W?l束Q?/span><span style="color: #008000"><br /> </span><span style="color: #000000"> TERM::</span><span style="color: #000000">=<</span><span style="color: #000000">_TERM_START_CHAR</span><span style="color: #000000">></span><span style="color: #000000"> (</span><span style="color: #000000"><</span><span style="color: #000000">_TERM_CHAR</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">*</span><span style="color: #000000"><br />  FUZZY_SLOP::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">~</span><span style="color: #000000">"</span><span style="color: #000000"> ( (</span><span style="color: #000000"><</span><span style="color: #000000">_NUM_CHAR</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000"> ( </span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000"> (</span><span style="color: #000000"><</span><span style="color: #000000">_NUM_CHAR</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000"> )</span><span style="color: #000000">?</span><span style="color: #000000"> )</span><span style="color: #000000">?</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">字符~开始,而后是数?Lucene支持模糊查询Q例?roam~"?roam~0.8"QThe value is between 0 and 1Q算法ؓ(f)the Levenshtein Distance, or Edit Distance algorithm</span><span style="color: #008000"><br /> </span><span style="color: #000000"> PREFIXTERM::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000"><</span><span style="color: #000000">_TERM_START_CHAR</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000">) (</span><span style="color: #000000"><</span><span style="color: #000000">_TERM_CHAR</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">*</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">模糊查找Q表CZ某某开头的查询, 字符表示?something*"Q前~允许模糊W号*Q中间可有字W也可没有, l尾必须?</span><span style="color: #008000"><br /> </span><span style="color: #000000"> WILDTERM::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000"><</span><span style="color: #000000">_TERM_START_CHAR</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> [ </span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000"> ]) (</span><span style="color: #000000"><</span><span style="color: #000000">_TERM_CHAR</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">|</span><span style="color: #000000"> ( [ </span><span style="color: #000000">"</span><span style="color: #000000">*</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000"> ] ))</span><span style="color: #000000">*</span><span style="color: #000000"> </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">cM上面Q但同时支持?字符Q结֏以是字符也可以是* ?。用[]表示or关系Ӟ不需要用|Q只?号分割即?/span><span style="color: #008000"><br /> </span><span style="color: #000000"> RANGEIN_START::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">[</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">在RangeQuery中,[或{表示?jin)是否包含边界条件本w? 用字W表CZؓ(f)"[begin TO end]" 或?{begin TO end}",后接RangeIn</span><span style="color: #008000"><br /> </span><span style="color: #000000"> RANGEEX_START::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">{</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">同上Q后接RangeEx</span><span style="color: #008000"><br /> </span><span style="color: #000000"><br /> </span><span style="color: #000000"><</span><span style="color: #000000">Boost</span><span style="color: #000000">></span><span style="color: #000000"> TOKEN:<br />  NUMBER::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000"><</span><span style="color: #000000">_NUM_CHAR</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000"> ( </span><span style="color: #000000">"</span><span style="color: #000000">.</span><span style="color: #000000">"</span><span style="color: #000000"> (</span><span style="color: #000000"><</span><span style="color: #000000">_NUM_CHAR</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000"> )</span><span style="color: #000000">?</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">后接DEFAULTQ?nbsp;整数或小?/span><span style="color: #008000"><br /> </span><span style="color: #000000"><br /> </span><span style="color: #000000"><</span><span style="color: #000000">RangeIn</span><span style="color: #000000">></span><span style="color: #000000"> TOKEN:<br />  RANGEIN_TO::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">TO</span><span style="color: #000000">"</span><span style="color: #000000"><br />  RANGEIN_END::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">]</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">后接DEFAULT, RangIn的结?/span><span style="color: #008000"><br /> </span><span style="color: #000000"> RANGEIN_QUOTED::</span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000"> (~[</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">] </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\\\</span><span style="color: #000000">""</span><span style="color: #000000">)+ </span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">同上qQUOTEDQ表C用"包v来的字符?</span><span style="color: #008000"><br /> </span><span style="color: #000000"> RANGEIN_GOOP::</span><span style="color: #000000">=</span><span style="color: #000000"> (</span><span style="color: #000000">~</span><span style="color: #000000">[ </span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">]</span><span style="color: #000000">"</span><span style="color: #000000"> ])</span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">1个或多个不是I格和]的符?q样p提取出[]中的内容</span><span style="color: #008000"><br /> </span><span style="color: #000000"><br /> </span><span style="color: #000000"><</span><span style="color: #000000">RangeEx</span><span style="color: #000000">></span><span style="color: #000000"> TOKEN :<br />  RANGEEX_TO::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">TO</span><span style="color: #000000">"</span><span style="color: #000000">></span><span style="color: #000000"><br />  RANGEEX_END::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">后接DEFAULT, RangeEx的结?/span><span style="color: #008000"><br /> </span><span style="color: #000000"> RANGEEX_QUOTED::</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000"> (~[</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000">] </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">\\\</span><span style="color: #000000">""</span><span style="color: #000000">)+ </span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">""</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">同上qQUOTEDQ表C用"包v来的字符?</span><span style="color: #008000"><br /> </span><span style="color: #000000"> RANGEEX_GOOP::</span><span style="color: #000000">=</span><span style="color: #000000">(</span><span style="color: #000000">~</span><span style="color: #000000">[ </span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000"> ])</span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #008000">//</span><span style="color: #008000">1个或多个不是I格和]的符?q样p提取出[]中的内容</span><span style="color: #008000"><br /> </span><span style="color: #000000"><br /> <br /> </span><span style="color: #000000"><</span><span style="color: #000000">DEFAULT, RangeIn, RangeEx</span><span style="color: #000000">></span><span style="color: #000000"> SKIP : {<br />   </span><span style="color: #000000"><</span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">_WHITESPACE</span><span style="color: #000000">>></span><span style="color: #000000"><br /> } </span><span style="color: #008000">//</span><span style="color: #008000">所有空格和回R被忽?br /> </span></div> <p><br /> <br /> 以下析部?br /> </p> <p> </p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">Conjunction::</span><span style="color: #000000">=</span><span style="color: #000000">[ </span><span style="color: #000000"><</span><span style="color: #000000">AND</span><span style="color: #000000">></span><span style="color: #000000"> { ret </span><span style="color: #000000">=</span><span style="color: #000000"> CONJ_AND; } </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">OR</span><span style="color: #000000">></span><span style="color: #000000">  { ret </span><span style="color: #000000">=</span><span style="color: #000000"> CONJ_OR; }  ] </span><span style="color: #008000">//</span><span style="color: #008000">q接</span><span style="color: #008000"><br /> </span><span style="color: #000000">Modifiers::</span><span style="color: #000000">=</span><span style="color: #000000">[ </span><span style="color: #000000"><</span><span style="color: #000000">PLUS</span><span style="color: #000000">></span><span style="color: #000000"> { ret </span><span style="color: #000000">=</span><span style="color: #000000"> MOD_REQ; } </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">MINUS</span><span style="color: #000000">></span><span style="color: #000000"> { ret </span><span style="color: #000000">=</span><span style="color: #000000"> MOD_NOT; } </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">NOT</span><span style="color: #000000">></span><span style="color: #000000"> { ret </span><span style="color: #000000">=</span><span style="color: #000000"> MOD_NOT; } ] </span><span style="color: #008000">//</span><span style="color: #008000">+ - !W号</span><span style="color: #008000"><br /> </span><span style="color: #000000">Query::</span><span style="color: #000000">=</span><span style="color: #000000">Modifiers Clause (Conjunction Modifiers Clause)</span><span style="color: #000000">*</span><span style="color: #000000"><br /> Clause::</span><span style="color: #000000">=</span><span style="color: #000000">[(</span><span style="color: #000000"><</span><span style="color: #000000">TERM</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">COLON</span><span style="color: #000000">>|<</span><span style="color: #000000">STAR</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">COLON</span><span style="color: #000000">></span><span style="color: #000000">)] </span><span style="color: #008000">//</span><span style="color: #008000">btw:代码中LOOKAHEAD[2]表示使用LL(2)</span><span style="color: #008000"><br /> </span><span style="color: #000000">         (Term</span><span style="color: #000000">|<</span><span style="color: #000000">LPAREN</span><span style="color: #000000">></span><span style="color: #000000"> Query </span><span style="color: #000000"><</span><span style="color: #000000">RPAREN</span><span style="color: #000000">></span><span style="color: #000000"> (</span><span style="color: #000000"><</span><span style="color: #000000">CARAT</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">NUMBER</span><span style="color: #000000">></span><span style="color: #000000">)</span><span style="color: #000000">?</span><span style="color: #000000">)  </span><span style="color: #008000">//</span><span style="color: #008000">子句. ???????q儿语法有点,仿佛(jng)允许 *:(*:dog)q样的语?很奇?/span><span style="color: #008000"><br /> </span><span style="color: #000000">Term::</span><span style="color: #000000">=</span><span style="color: #000000">(<br />     (</span><span style="color: #000000"><</span><span style="color: #000000">TERM</span><span style="color: #000000">>|<</span><span style="color: #000000">STAR</span><span style="color: #000000">>|<</span><span style="color: #000000">PREFIXTERM</span><span style="color: #000000">>|<</span><span style="color: #000000">WILDTERM</span><span style="color: #000000">>|<</span><span style="color: #000000">NUMBER</span><span style="color: #000000">></span><span style="color: #000000">) [</span><span style="color: #000000"><</span><span style="color: #000000">FUZZY_SLOP</span><span style="color: #000000">></span><span style="color: #000000">] [</span><span style="color: #000000"><</span><span style="color: #000000">CARAT</span><span style="color: #000000">><</span><span style="color: #000000">NUMBER</span><span style="color: #000000">></span><span style="color: #000000">[</span><span style="color: #000000"><</span><span style="color: #000000">FUZZY_SLOP</span><span style="color: #000000">></span><span style="color: #000000">]} <br />     </span><span style="color: #000000">|</span><span style="color: #000000"> ( </span><span style="color: #000000"><</span><span style="color: #000000">RANGEIN_START</span><span style="color: #000000">></span><span style="color: #000000"> (</span><span style="color: #000000"><</span><span style="color: #000000">RANGEIN_GOOP</span><span style="color: #000000">>|<</span><span style="color: #000000">RANGEIN_QUOTED</span><span style="color: #000000">></span><span style="color: #000000">) [ </span><span style="color: #000000"><</span><span style="color: #000000">RANGEIN_TO</span><span style="color: #000000">></span><span style="color: #000000"> ] (</span><span style="color: #000000"><</span><span style="color: #000000">RANGEIN_GOOP</span><span style="color: #000000">>|<</span><span style="color: #000000">RANGEIN_QUOTED</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">RANGEIN_END</span><span style="color: #000000">></span><span style="color: #000000"> ) [ </span><span style="color: #000000"><</span><span style="color: #000000">CARAT</span><span style="color: #000000">></span><span style="color: #000000"> boost</span><span style="color: #000000">=<</span><span style="color: #000000">NUMBER</span><span style="color: #000000">></span><span style="color: #000000"> ] </span><span style="color: #008000">//</span><span style="color: #008000">q儿看出range必须同时有两?不能只有有一?nbsp;</span><span style="color: #008000"><br /> </span><span style="color: #000000">    </span><span style="color: #000000">|</span><span style="color: #000000"> ( </span><span style="color: #000000"><</span><span style="color: #000000">RANGEEX_START</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">RANGEEX_GOOP</span><span style="color: #000000">>|<</span><span style="color: #000000">RANGEEX_QUOTED</span><span style="color: #000000">></span><span style="color: #000000"> [ </span><span style="color: #000000"><</span><span style="color: #000000">RANGEEX_TO</span><span style="color: #000000">></span><span style="color: #000000"> ] </span><span style="color: #000000"><</span><span style="color: #000000">RANGEEX_GOOP</span><span style="color: #000000">>|<</span><span style="color: #000000">RANGEEX_QUOTED</span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">RANGEEX_END</span><span style="color: #000000">></span><span style="color: #000000"> )[ </span><span style="color: #000000"><</span><span style="color: #000000">CARAT</span><span style="color: #000000">></span><span style="color: #000000"> boost</span><span style="color: #000000">=<</span><span style="color: #000000">NUMBER</span><span style="color: #000000">></span><span style="color: #000000"> ] </span><span style="color: #008000">//</span><span style="color: #008000">在RangeQuery中,[或{表示?jin)是否包含边界条件本w? 用字W表CZؓ(f)"[begin TO end]" 或?{begin TO end}",后接RangeIn</span><span style="color: #008000"><br /> </span><span style="color: #000000">    </span><span style="color: #000000">|</span><span style="color: #000000"> </span><span style="color: #000000"><</span><span style="color: #000000">QUOTED</span><span style="color: #000000">></span><span style="color: #000000"> [ </span><span style="color: #000000"><</span><span style="color: #000000">FUZZY_SLOP</span><span style="color: #000000">></span><span style="color: #000000"> ] [ </span><span style="color: #000000"><</span><span style="color: #000000">CARAT</span><span style="color: #000000">></span><span style="color: #000000"> boost</span><span style="color: #000000">=<</span><span style="color: #000000">NUMBER</span><span style="color: #000000">></span><span style="color: #000000"> ] </span><span style="color: #008000">//</span><span style="color: #008000">?"包含的内?/span></div> <p><br /> btw: 猜测: javacc?如果使用[],则允许出?ơ或1?br /> </p> <img src ="http://m.tkk7.com/tim-wu/aggbug/177451.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tim-wu/" target="_blank">鹏飞万里</a> 2008-01-24 11:33 <a href="http://m.tkk7.com/tim-wu/archive/2008/01/24/177451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复杂度ؓ(f)log(n)的排序堆栈算?/title><link>http://m.tkk7.com/tim-wu/archive/2008/01/09/174073.html</link><dc:creator>鹏飞万里</dc:creator><author>鹏飞万里</author><pubDate>Wed, 09 Jan 2008 09:32:00 GMT</pubDate><guid>http://m.tkk7.com/tim-wu/archive/2008/01/09/174073.html</guid><wfw:comment>http://m.tkk7.com/tim-wu/comments/174073.html</wfw:comment><comments>http://m.tkk7.com/tim-wu/archive/2008/01/09/174073.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/tim-wu/comments/commentRss/174073.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tim-wu/services/trackbacks/174073.html</trackback:ping><description><![CDATA[<p>今天M(jin)lucent中的PriorityQueue.java, 一个很巧妙的复杂度为log(n)的排序堆?<br /> <br /> 始终保数组A[1...n]?<br /> A[i]<A[2*i]  & A[i] < A[2*i +1]<br /> 很容易推论出A[1]一定是最数? q且每次put()和pop()臛_Udlog(n)个数?br /> <br /> 真是好久没接触算法了(jin):)</p> <img src ="http://m.tkk7.com/tim-wu/aggbug/174073.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tim-wu/" target="_blank">鹏飞万里</a> 2008-01-09 17:32 <a href="http://m.tkk7.com/tim-wu/archive/2008/01/09/174073.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://manghuo365.com" target="_blank">91Ƶַ</a>| <a href="http://bjdxpx.com" target="_blank">99re6ƵƷ</a>| <a href="http://nuosheying.com" target="_blank">ۺ</a>| <a href="http://shaiyahx.com" target="_blank">һձaѲ</a>| <a href="http://minliusoft.com" target="_blank">ŮһͰһһƵ </a>| <a href="http://hidiaoyan.com" target="_blank">һ߹ۿ </a>| <a href="http://wwwzs88.com" target="_blank">þùӾƷŮ</a>| <a href="http://bx85.com" target="_blank">99Ƶѹۿ</a>| <a href="http://fuhui123.com" target="_blank">ѿaƬ߹ۿ</a>| <a href="http://an930.com" target="_blank">Ʒһ</a>| <a href="http://8222se.com" target="_blank">ĻƷ</a>| <a href="http://sijep.com" target="_blank">˳www</a>| <a href="http://xyzch.com" target="_blank">ŷպĻһ</a>| <a href="http://xxyy66.com" target="_blank">۵Ƶѹۿ</a>| <a href="http://taiyu18.com" target="_blank">aƬѹۿ</a>| <a href="http://xixidhw.com" target="_blank">þۺAVѹۿ</a>| <a href="http://074g8.com" target="_blank">޳AƬ</a>| <a href="http://whspmd.com" target="_blank">þþƷۺ</a>| <a href="http://jjesqc.com" target="_blank">޾Ʒ456˳</a>| <a href="http://cih60o.com" target="_blank">һѻɫëƬ</a>| <a href="http://uu313.com" target="_blank">91avѹۿ</a>| <a href="http://www-8908.com" target="_blank">ֻˬƵ</a>| <a href="http://mogo321.com" target="_blank">޳һ</a>| <a href="http://828556.com" target="_blank">޳aƬ߿</a>| <a href="http://3333seav.com" target="_blank">www߹ۿƵձ</a>| <a href="http://jhmydxx.com" target="_blank">99ƷƵ߹ۿ</a>| <a href="http://beidemei.com" target="_blank">ѹۿƬëƬ</a>| <a href="http://nzzys.com" target="_blank">þþƷƷɫ</a>| <a href="http://vankiz.com" target="_blank">Ůרhd</a>| <a href="http://jhc2go.com" target="_blank">ĻѸƵ</a>| <a href="http://vcnxa.com" target="_blank">Ұѹۿ</a>| <a href="http://miliwo.com" target="_blank">þþþרav</a>| <a href="http://cc006.com" target="_blank">޿һ</a>| <a href="http://tttui.com" target="_blank">ƷһƵ</a>| <a href="http://guakao88.com" target="_blank">˳ɵӰվ</a>| <a href="http://dqcjlb.com" target="_blank">þ޸ۺ</a>| <a href="http://zjlxblog.com" target="_blank">ѹۿƵ</a>| <a href="http://wxyz2.com" target="_blank">aëƬѹۿƵ</a>| <a href="http://6006284.com" target="_blank">պƷѵӰ</a>| <a href="http://badabg.com" target="_blank">վѹۿ</a>| <a href="http://72c5.com" target="_blank">ӰһѾþþþþþþ </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>