lucene 查询时输入的关键字中包含的词必须出现才被查询出来实现

说明:

输入> 安徽 合肥 包河区

输出> 只有包含“安徽”+“合肥”+“包河区”的索引才会被搜索出来

这样就会使搜索结果根据你输入的关键字的多少进行控制,输入的越多结果也越少越精确


实现方式:

通过使用IKAnalyizer分词器来将输入的字符串进行分词,将分此后的结果放到一个数组中后循环将数组中的字符串作为查询必须出现的条件,这样就能保证查询出来的结果中一定包含你输入的关键字了

示意代码如下:

//将一个字符串创建成Token流

TokenStream stream = analyzer.tokenStream("field", new StringReader(str));

//保存分词后的结果词汇

CharTermAttribute cta = stream.addAttribute(CharTermAttributte.class);

stream.reset(); //这句很重要

while(stream.increamentToken()) {

list.add(cta);

}

stream.end(); //这句很重要

stream.close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值