我正在向基于 JSF 的 CMS 产品添加高级搜索功能
搜索条件 :
如果用户使用关键字 Assets 进行搜索,那么他应该能够获得包含 Asset 以及 Assets 的记录
我发现 Lucene 和 Solr 是进行全文搜索的最佳方式,我已经实现了 Apache Lucene Search,它的工作速度比普通查询结果快,但不能解决我的搜索条件。
是否有任何其他 Java 库可以帮助我达到这个标准?
PorterStemmer是在 Lucene 中支持这种词干提取的好选择。特别是,将PorterStemFilter合并到您的分析器中将是典型的方法。链接的文档中列出了一个简单的示例PorterStemFilter
,但可能看起来像(在本例中基于 StandardAnalyzer):
class MyStemmerAnalyzer extends Analyzer {
@override
public TokenStream tokenStream(String fieldName, Reader reader) {
TokenStream stream = new StandardTokenizer(reader);
stream = new StandardFilter(stream);
stream = new LowerCaseFilter(stream);
stream = new PorterStemFilter(stream);
stream = new StopFilter(stream, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
return stream;
}
}