我在做那个Lucene 高亮显示时我开始用的英文的就运行没错 ,但我一改成
private Analyzer analyzer=new MMAnalyzer();包我都加了 但是它抛了这个错误Exception in thread "main" java.lang.NoSuchMethodError: org.apache.lucene.analysis.StopFilter.<init>(Lorg/apache/lucene/analysis/TokenStream;Ljava/util/Set;Z)、希望各位大哥们给个解决方案先谢过了
private Analyzer analyzer=new MMAnalyzer();包我都加了 但是它抛了这个错误Exception in thread "main" java.lang.NoSuchMethodError: org.apache.lucene.analysis.StopFilter.<init>(Lorg/apache/lucene/analysis/TokenStream;Ljava/util/Set;Z)、希望各位大哥们给个解决方案先谢过了
解决方案 »
- 不同Extjs页面之间 控件的调用问题
- struts中配置数据源出现问题
- 学习struts最快需要多长时间?有好的开发工具么?
- java在JSP中的图片剪裁
- junit如何通过jndi访问datasource的connection
- 关于HIBERNATE的load问题~~
- 请教各位大虾,做b/s架构的报表如何实现自定义公式???
- 最近在学习james的源代码,感觉处处都会碰到 configuration 这个类,请问它是做什么用的?提供配置信息的吗?
- (关于EJB、模式等)真正的J2EE高手请进(初中级者莫入)!
- jbuilder是必须的吗?
- openoffice sdk 3.2 for windows7开发环境配置
- 关于tomcat5.5中el表达式不输出
你可以去下载个例子,里面包括你所需要的功能.http://download.csdn.net/source/2766012
MMAnalyzer() 这个对中文分词支持也不行 只支持单字分词个人建议 你去开源网下最新的 Lucene
还有 推荐下 IKAnalyzer 还不错 挺好用的
ublic void indexSearch(String searchType, String searchKey) {
Directory directory = null;
IndexSearcher searcher = null;
// 搜索开始时间
Date beginTime = new Date();
try {
directory = FSDirectory.open(new File(INDEX_STORE_PATH));
searcher = new IndexSearcher(directory);
searcher.setSimilarity(new IKSimilarity());
Query query = IKQueryParser.parse(searchType, searchKey);
System.out.println("查询条件为:" + query);
TopDocs topDocs = searcher.search(query, searcher.maxDoc());
System.out.println("检索到总数:" + topDocs.totalHits);
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
SimpleHTMLFormatter simpleHtmlFormatter = new SimpleHTMLFormatter("<FONT COLOR='RED'>", "</FONT>");
Highlighter highlighter = new Highlighter(simpleHtmlFormatter,new QueryScorer(query));
highlighter.setTextFragmenter(new SimpleFragmenter(100));
Analyzer analyzer = new IKAnalyzer();
for (int i = 0; i < scoreDocs.length; i++) {
Document targetDoc = searcher.doc(scoreDocs[i].doc);
TokenStream tokenStream = analyzer.tokenStream("",new StringReader(targetDoc.get("content")));
String str = highlighter.getBestFragment(tokenStream, targetDoc.get("content"));
System.out.println(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (searcher != null) {
try {
searcher.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (directory != null) {
try {
directory.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 搜索完成时间
Date endTime = new Date();
// 搜索所耗时间
long timeOfSearch = endTime.getTime() - beginTime.getTime();
System.out
.println("The time For indexsearch is " + timeOfSearch + " ms");
}
}我用的 Lucene(3.0.2) 和 IKAnalyzer(3.2.3) 都是最新的 不知道你的版本是什么 你看看我的代码
我现在还在发愁数据量太大 和 增量索引的问题呢
不过你贴的那个异常 确实很可能是jar包的问题 你可以把jar打开看下是否有那个类那个方法