Lucene面向全文检索的优化在于首次索引检索后,并不把所有的记录(Document)具体内容读取出来,而起只将所有结果中匹配度最高的头100条结果(TopDocs)的ID放到结果集缓存中并返回,这里可以比较一下数据库检索:如果是一个10,000条的数据库检索结果集,数据库是一定要把所有记录内容都取得以后再开始返回给应用结果集的。所以即使检索匹配总数很多,Lucene的结果集占用的内存空间也不会很多。对于一般的模糊检索应用是用不到这么多的结果的,头100条已经可以满足90%以上的检索需求。
如果首批缓存结果数用完后还要读取更后面的结果时Searcher会再次检索并生成一个上次的搜索缓存数大1倍的缓存,并再重新向后抓取。所以如果构造一个Searcher去查1-120条结果,Searcher其实是进行了2次搜索过程:头100条取完后,缓存结果用完,Searcher重新检索再构造一个200条的结果缓存,依此类推,400条缓存,800条缓存。由于每次Searcher对象消失后,这些缓存也访问那不到了,你有可能想将结果记录缓存下来,缓存数尽量保证在100以下以充分利用首次的结果缓存,不让Lucene浪费多次检索,而且可以分级进行结果缓存。
Lucene的另外一个特点是在收集结果的过程中将匹配度低的结果自动过滤掉了。这也是和数据库应用需要将搜索的结果全部返回不同之处。
分享到:
相关推荐
Lucene全文检索案例Lucene全文检索案例Lucene全文检索案例Lucene全文检索案例
lucene全文检索需要的三个jar包:lucene-analyzers-3.6.1.jar lucene-core-3.6.1.jar lucene-highlighter-3.6.1.jar
lucene全文检索全面教程,基于JAVA的lucene全文检索全面教程。www.288158.com
NULL 博文链接:https://1151461406.iteye.com/blog/2388343
Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的...
lucene 全文检索 ,内含对word,excel,ppt,pdf封装接口,全文检索demo
资源全免费,我的博客有相关的说明,这个是一个eclipse项目,是一个使用lucene全文检索word2007的例子,可以直接运行,但是需要在数据目录下放入word文件 才能创建索引.
视频详细讲解,需要的小伙伴自行网盘下载,链接见附件,永久有效。 目前业界流行的ElasticSearch和Solr搜索...系统的学习Lucene全文检索技术,全面掌握搜索原理和底层知识,为学习其他应用层面搜索技术打下坚实的基础。
lucene全文检索案例源码 lucene全文检索案例源码
使用lucene编程实现全文检索数据库内容,程序使用lucene-core-2.4.0以及access数据库
lucene全文检索引擎资料包(有项目)lucene全文检索引擎资料包(有项目)lucene全文检索引擎资料包(有项目)
采用lucene全文检索技术,对文档进行全文检索,支持.java,.txt,.xml,.xls等文件的检索。采用mysql数据库。数据库并不包含在系统中,需要用户自己创建,数据库的配置在config/DB.properties文件中。能够检索出字符串...
Lucene实现全文检索
建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词==>文章映射关系,利用这样的映射关系索引:...
Lucene检索数据库支持中文检索,还不错的说
基于lucene 2.4简单的一个索引和搜索实例
使用Jsoup 抓取网页, Lucene 做检索。 配置文件从别的项目拷过来的。。所以, 你懂得。 压缩包里有war 和 src 环境配置: jdk1.8, tomcat 8
Lucene 全文检索实践.pdf(清晰版本)