我正在向基于JSF的CMS产品添加高级搜索功能
搜索条件:
如果用户搜索关键字资产,那么他应该能够获得包含资产和资产的记录
我发现Lucene和Solr是进行全文搜索的最佳方式,我已经实现了Apache Lucene Search,它比普通查询结果更快,但不能解决我的搜索条件。
是否还有其他Java库可以帮助我达到这个标准?
答案 0 :(得分:0)
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;
}
}