hibernate search -- 中文词法分析

hibernate search底层使用Lucene,所以Lucene可以使用的中文分词,hibernate search都可以用来支持中文词法分析,比较常用的词法分析器包括paoding,IKAnalyzer,mmseg4j 等等。具体可以参考分词分析 最近分析。hibernate search默认的分词器是org.apache.lucene.analysis.standard.StandardAnalyzer,中文按字分词,显然不符合我们的需求。
这里介绍一下如何在hibernate中配置中文分词,选择的是Lucene自带的中文分词–。使用可以通过3种方式,一种是在hibernate的配置文件设置词法分析方法,另外一种是在每个需要被搜索的类中定义分词方法,最后一种是对单个字段配置。这里介绍下前2种的配置方式。
hibernate配置方式:

"hibernate.search.analyzer"> org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer

被搜索类配置中文分词:

@Indexed
@Analyzer(impl=SmartChineseAnalyzer.class)

同时需要在maven中引入相关包依赖

<dependency>
            <groupId>org.apache.lucenegroupId>
            <artifactId>lucene-analyzers-smartcnartifactId>
            <version>${lucene.version}version>
        dependency>

Note:
mmseg4j 虽然有几个月没有更新,它的最大分词还是挺全的,就是吃内存多些,慢些 com.chenlb.mmseg4j.analysis.MaxWordAnalyzer

你可能感兴趣的:(Java,Java,Web)