拆解Cluene系列(22)——Query的再解释
2016-08-28 10:32
429 查看
//把 a解释成b, 然后把b解释成c,把c解释成d,中间的b c需要删除掉。 Query* IndexSearcher::rewrite(Query* original) { Query* query = original; Query* last = original; for (Query* rewrittenQuery = query->rewrite(reader); rewrittenQuery != query; rewrittenQuery = query->rewrite(reader)) { query = rewrittenQuery; //query 是latest 的 if ( query != last && last != original ){ //last 此时是中间的,如果last不等于latest 也不等于最早的,因此last是中间的 _CLDELETE(last); } last = query; } return query; }
相关文章推荐
- 拆解Cluene系列(13)——Query和weight类图
- 拆解Cluene系列(4)——store中的类图
- 拆解Cluene系列(6)——Analyzer的职责链模式
- 拆解Cluene系列(10)——详解索引的合并(一)
- 拆解Cluene系列(5)——Analyzers中的类图
- 拆解Cluene系列(7)——Cluene用到的虚继承
- 拆解Cluene系列(14)——搜索时序图
- 拆解Cluene系列(9)——建立索引用到的类关系
- 拆解Cluene系列(12)——创建索引生成的文件格式和内容
- 拆解Cluene系列(8)——建立索引的流程
- 拆解Cluene系列(11)——索引的合并(二)
- NIO系列1:框架拆解
- Apache Cassandra3.X 系列,第 2 部分 数据模型深入解释
- Windows server 2012 AD架构 试验 系列22 -ADAC与PowerShell History
- 解释LINUX中RC系列目录的用途
- DDRMC 系列总结(2)zz常见硬件术语之内存术语解释
- Struts1.x系列教程(22):Tiles框架简介
- 【剑指offer系列】 栈的压入和弹出序列___22
- 剑指Offer系列---(22)顺时针打印矩阵
- 图像处理基础知识系列之一:边界跟踪之内边界跟踪算法解释