论坛首页 入门技术论坛

lucene 搜索速度问题

浏览 16594 次
该帖已经被评为新手帖
作者 正文
   发表时间:2012-03-27  
whiletrue 写道
yrclsgo 写道
eimhee 写道
IndexReader reader = IndexReader.open(FSDirectory.open(new File(TestIndexer.indexPath)));
这个方法放在SETUP方法里比较合理, 不需要每次请求都创建一个IndexReader, 这样很消耗性能

谢谢您,reader 是不是可以考虑弄能单利的?

人家是在测试,就不要挑这么多了
看看这篇文章吧:
http://wiki.apache.org/lucene-java/ImproveSearchingSpeed
姐妹篇:http://wiki.apache.org/lucene-java/ImproveIndexingSpeed

谢谢您
0 请登录后投票
   发表时间:2012-03-27  
官方提示:When measuring performance, disregard the first query.
0 请登录后投票
   发表时间:2012-03-27  
wu_quanyin 写道
官方提示:When measuring performance, disregard the first query.

已经忽略了第一次
0 请登录后投票
   发表时间:2012-03-27  
yrclsgo 写道
wu_quanyin 写道
官方提示:When measuring performance, disregard the first query.

已经忽略了第一次


1. 你要在一个
IndexReader reader 
下面做。
你上面写的代码我看不出你怎么才能忽略第一次。
2. System.out.println确实很耗时间特别是循环特别多的情况。
3.FSDirectory可以换成 RAMDirectory



0 请登录后投票
   发表时间:2012-03-27  
DDT_123456 写道
yrclsgo 写道
wu_quanyin 写道
官方提示:When measuring performance, disregard the first query.

已经忽略了第一次


1. 你要在一个
IndexReader reader 
下面做。
你上面写的代码我看不出你怎么才能忽略第一次。
2. System.out.println确实很耗时间特别是循环特别多的情况。
3.FSDirectory可以换成 RAMDirectory




另外 请适当调大你的JVM内存
0 请登录后投票
   发表时间:2012-03-27  
你的时间在io
0 请登录后投票
   发表时间:2012-03-27  
DDT_123456 写道
DDT_123456 写道
yrclsgo 写道
wu_quanyin 写道
官方提示:When measuring performance, disregard the first query.

已经忽略了第一次


1. 你要在一个
IndexReader reader 
下面做。
你上面写的代码我看不出你怎么才能忽略第一次。
2. System.out.println确实很耗时间特别是循环特别多的情况。
3.FSDirectory可以换成 RAMDirectory




另外 请适当调大你的JVM内存

谢谢您的指导
0 请登录后投票
   发表时间:2012-03-28  
yrclsgo 写道
tsxm 写道
你现在是搜索,Query query = parser.parse("活动");,这句话仅仅是对搜索关键词进行分词,又不是建索引时候的分词,这个时间很短的,基本可以忽略

但是经过我反复的测试,确实是这句话在影响速度(最起码在我这个环境下是这样的)


很负责的告诉你,Query query = parser.parse("活动"); 这句影响了你的测试时间,原因是parse方法执行的时候要调用分词器,而IK分词器在第一次执行的时候,需要将27w多的词典加载到内存,你说耗时么?!
0 请登录后投票
   发表时间:2012-03-29  
linliangyi2007 写道
yrclsgo 写道
tsxm 写道
你现在是搜索,Query query = parser.parse("活动");,这句话仅仅是对搜索关键词进行分词,又不是建索引时候的分词,这个时间很短的,基本可以忽略

但是经过我反复的测试,确实是这句话在影响速度(最起码在我这个环境下是这样的)


很负责的告诉你,Query query = parser.parse("活动"); 这句影响了你的测试时间,原因是parse方法执行的时候要调用分词器,而IK分词器在第一次执行的时候,需要将27w多的词典加载到内存,你说耗时么?!

谢谢您的指导,这下彻底明白了
0 请登录后投票
   发表时间:2012-04-24  
lucene的搜索1s有点夸张了 才22M 是不是看错了
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics