Lucene生成查询的函数调用关系

QueryParser.parse
	QueryParser.TopLevelQuery
		QueryParser.Query
			QueryParser.Clause
				QueryParser.Term
					QueryParser.jj_consume_token
					QueryParser.discardEscapeChar
					QueryParser.getFieldQuery
						PaodingAnalyzer.reusableTokenStream
							PaodingAnalyzer.tokenStream
						new CachingTokenFilter(source);
						CachingTokenFilter.getAttribute(CharTermAttribute.class);
							LinkedHashMap.get
						CachingTokenFilter.incrementToken//复制的是分词
							CachingTokenFilter.restoreState//把State中的数据复制到attributeImpls中
								attributeImpls.get
						CharTermAttributeImpl.copyTo
						QueryParser.newPhraseQuery
							new PhraseQuery()
						PhraseQuery.setSlop
						CachingTokenFilter.incrementToken//复制的是偏移
						CharTermAttributeImpl.toString//得到Term
						PhraseQuery.add(Term)//构造Query
			QueryParser.addClause
				clauses.add(newBooleanClause
		QueryParser.jj_consume_token

 

你可能感兴趣的:(Lucene,token)