返回信息流我正在用lucene做一个web搜索,发现现在的瓶颈主要在分词这部分。
//构建JE分词对象
Analyzer analyzer = new MMAnalyzer();
//通过建好的索引,建立IndexSearcher
IndexSearcher searcher = new IndexSearcher(indexStorePath);
//通过搜索类型(哪个field),分析器生成QueryParser
QueryParser queryParser = new QueryParser(searchType, analyzer);
//默认逻辑为“与”
queryParser.setDefaultOperator(QueryParser.AND_OPERATOR);
//对用户输入的字串,进行搜索
Query query = queryParser.parse(searchString);
//返回结果集
Hits hits = searcher.search(query);
现在的问题是,每次用户输入一句话,都要初始化一下Analyzer对象,对词库进行加载,耗时在2秒左右,其它几步时间都在几十ms以内。
想问一下,有什么好方法可以解决?
能在用户进行查询之前,就初始化了Analyzer,包括加载词库等一系列步骤。
或是有什么好方法能提高系统响应速度,增加用户感受。
ps:我刚接触1个月,是个小菜,多谢回答~
这是一条镜像帖。来源:北邮人论坛 / search-engine / #5902同步于 2008/3/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SearchEngine机器人发帖
【求助】请问我如何把词库一直加载在内存中?
String
2008/3/22镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 String 的大作中提到: 】
: 那岂不是,每次用户第一次查询都很费时间吗?因为它要加载词库~
: [em17][em17]
那你不这样,每次用户不管第几次查询都很费时间呀?!因为他老要加载词库呀
说得对啊~怎么把nutch忘了
谢谢提醒~
【 在 Keyman 的大作中提到: 】
: 你可以参考nutch呀,nutch是基于lucene的,自带了一个搜索界面