使用IndexReader.repen提高搜索速度
2013-12-20 14:40
232 查看
1,使用indexreader创建indexsearcher. 2,indexsearcher在使用完了以后不要关闭. 3.使用indexreader.isCurrent()判断索引是否被indexwriter改动. 4,如果索引被改动,indexsearcher.close()先前那个,然后new indexsearcher(indexreader).
传string给searcher,searcher会维护一个内部的reader,当本次搜索结束后reader会被关掉.如果使用reader构造,reader在本次搜索结束后不会被关掉,除非你自己调用reader.close();所以用reader去构造searcher,然后通过searcher.getIndexReader()获取当前的reader,用reader.iscurrent()判断索引文件是否变化了,如果索引文件已经更改,则把当前的searcher关闭,然后再利用reader.reopen()方法获取新的reader,再创建一个searcher,像这样,new IndexSearcher(reader.reopen());
代码:
一、indexSearcher=new IndexSearcher(IndexReader.open(indexPath));
二、/* * 先获取reader,如果索引文件已经变化,关闭当前indexSearcher,然后以重新获取的indexReader * 作为参数new一个新的indexSearcher实例 */ IndexReader indexReader=indexSearcher.getIndexReader();//获取当前的indexReader if(!indexReader.isCurrent()){//判断是否有索引更新 // 如果有索引更新,先关闭当前的indexSearcher indexSearcher.close(); //利用indexReader.reopen()获取新的indexReader,并作为IndexSearcher的参数创建一个新的indexSearcher indexSearcher=new IndexSearcher(indexReader.reopen()); }
传string给searcher,searcher会维护一个内部的reader,当本次搜索结束后reader会被关掉.如果使用reader构造,reader在本次搜索结束后不会被关掉,除非你自己调用reader.close();所以用reader去构造searcher,然后通过searcher.getIndexReader()获取当前的reader,用reader.iscurrent()判断索引文件是否变化了,如果索引文件已经更改,则把当前的searcher关闭,然后再利用reader.reopen()方法获取新的reader,再创建一个searcher,像这样,new IndexSearcher(reader.reopen());
代码:
一、indexSearcher=new IndexSearcher(IndexReader.open(indexPath));
二、/* * 先获取reader,如果索引文件已经变化,关闭当前indexSearcher,然后以重新获取的indexReader * 作为参数new一个新的indexSearcher实例 */ IndexReader indexReader=indexSearcher.getIndexReader();//获取当前的indexReader if(!indexReader.isCurrent()){//判断是否有索引更新 // 如果有索引更新,先关闭当前的indexSearcher indexSearcher.close(); //利用indexReader.reopen()获取新的indexReader,并作为IndexSearcher的参数创建一个新的indexSearcher indexSearcher=new IndexSearcher(indexReader.reopen()); }
相关文章推荐
- 使用 GNU profiler 来提高代码运行速度
- 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。
- 用位来代替bool:减小内存使用,提高运行速度
- 禁用wordpress gravatar使用本地头像提高网页打开速度
- 使用Lucene.net提升网站搜索速度整合记录
- mysql在数据库表中,使用索引可以大大提高查询速度
- 在WCF数据访问中使用缓存提高Winform字段中文显示速度的方法
- 使用Oracle索引压缩技术,减少空间占用,并提高大数据量访问情况下的速度.
- 让mongoDB也能使用in查询,提高查询速度
- 使用fastcgi_finish_request提高页面响应速度
- 使用tomcat的compression来提高网页加载速度
- 使用Data URIs来提高你的网站速度
- 使用数据2分处理的通用分页存储过程 前半部分与后半部分数据访问时间相同,同等访问速度提高一倍
- PHP使用memcache缓存技术提高响应速度的方法
- setContentView+LayoutInflater=完美切换页面(两者一定要同时使用,setContentView提高切换页面速度必看)setContentView的秘密----续上
- 使用ant优化android项目编译速度,提高工作效率
- 根据用户使用习惯来提高招聘搜索效果
- c# 使用SqlBulkCopy 提高大数据插入数据库速度
- 让mongoDB也能使用in查询,提高查询速度
- 如何使用google提高搜索效率