Lucene3.02 添加自定义analyzer

本文介绍了如何在Lucene中创建一个自定义Analyzer——AfeiCiGenAnalyzer,该Analyzer仅将特定词(如"afei")作为关键词,其他词则忽略。通过重写tokenStream方法并结合Filter实现,展示了Analyzer在索引创建和查询处理中的作用。附带了测试代码以验证自定义Analyzer的效果。

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

Analyzer主要用来分词,一个是对数据的分词,对分析出来的关键词建索引,第二个就是对查询语句分词,使其能更好的匹配,下面就添加一个最简单的analyzer,功能为如果词是"afei",就能形成关键字。。。不是就忽略。。。这个分词器其实已经失去了意义。。。因为只能返回一个词。。。悲哀。。。

Analyzer:在新建 IndexWriter时会传入Analyzer,并调用tokenStream获得相应的tokenStream,我们这里就获得自己定义 的 AfeiCIGenFilter,它就是一个TokenStream.

 

 

Filter:

在lucene中会不停的调用incrementToken() 判断是否还有新的词,如果有就放在 termAtt中,这个termAtt是在初始化Filter时添加上去的,呵呵。这样就行了,最简单的分词器。因为我们在AfeiCiGenFilter中传入的tokenStream是LowerCaseTokenizer,所以得到的是已经小写化的英文单词,呵呵,LUCENE这种分析器的设计实在在太漂亮了,好好学习啊,呵呵

 

使用的时候只需要在新建IndexWriter时传入我们的Analyzer就行了,呵呵

 

附一段测试 Analyzer和tokenStream的代码,呵呵, 发现相当的有用,哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值