高级搜索Java库

时间:2013-06-07 12:37:49

标签: java mysql jsf solr lucene

我正在向基于JSF的CMS产品添加高级搜索功能

搜索条件:

  

如果用户搜索关键字资产,那么他应该能够获得包含资产和资产的记录

我发现Lucene和Solr是进行全文搜索的最佳方式,我已经实现了Apache Lucene Search,它比普通查询结果更快,但不能解决我的搜索条件。

是否还有其他Java库可以帮助我达到这个标准?

1 个答案:

答案 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;
    }
}