hibernate search -- 中文词法分析

Hibernate Search 使用 Lucene 进行搜索,支持多种中文词法分析器如 Paoding、IKAnalyzer、mmseg4j 等。文章介绍了如何配置 Hibernate 以使用 Lucene 自带的中文分词器,包括在 Hibernate 配置文件中设置和在实体类中定义分词方法。特别提到了 mmseg4j 分词器的优点和依赖包引入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

<property name="hibernate.search.analyzer"> org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer</property>

被搜索类配置中文分词:

@Indexed
@Analyzer(impl=SmartChineseAnalyzer.class)

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

<dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-analyzers-smartcn</artifactId>
            <version>${lucene.version}</version>
        </dependency>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值