03 2012 档案
摘要:1.总述IndexSearch全过程源码分析--->生成weight树IndexSearch--->search(createWeight(query),filter,n,sort)|--createWeight(query)|实际为生成Weight树|--returnquery.weight(this);2.创建weight树总过程query.weight(this)|--Queryquery=searcher.rewrite(this);|重新解析Query,将Query生成为单个可供直接查询的Query|--Weightweight=query.createWeight(se
阅读全文
摘要:1.在大规模的应用中,Lucene更适合用于狭义的“搜索”,而不应当负责数据的存储。我们看看Lucene的源代码也可以知道,Document和 Field的存储效率是不够好看的。手机之家的团队也发现了这一点,他们的办法是,用Lucene存放索引,用Memcache + Berkeley DB(Java Edition)负责存储。这样有两个好处,一是减小了Lucene的数据规模,提高了程序的效率;另一方面,这套系统也可以提供某些类似SQL的查询功 能。实际上,Lucene Project自己似乎也注意到了这个问题,在Store中新增了一个db选项,其实也是利用的Berkeley DB。如果仅仅用
阅读全文