android+lucene实现全文检索并高亮关键字

这篇博客介绍了如何在Android应用中结合Lucene实现全文检索,并使用高亮显示搜索关键字。作者提供了一些关键代码片段,包括设置HTML标签、使用SimpleHTMLFormatter、设置Highlighter以及自定义ListView适配器来实现高亮效果。源码中使用了IKAnalyzer作为分词器,而不是传统的Lucene分词器。

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

这里先假设读者对Lucene的使用比较熟悉的。

由于代码量比较多,这里我只写出一些关键的代码,全部源码请到这里下载:

android+lucene实现全文检索并高亮关键字

android+lucene实现全文检索并高亮关键字索引库

请将下载到的索引库解压后放到sdcard根目录下

源码里边的注释写的也比较详细

在andorid里实现字体高亮,若单独实现其实不是很难,但若和lucene结合使用,实现被搜索的关键字高亮,就有些麻烦事。原因在于,关键字高亮是有lucene提供的一个类(Highlighter)来管理。它的实现方式其实很简单,就是将关键字用html标签包裹起来。下边先来看一下几段关键性的代码

1.先定义一对html标签,用两个String常量来保存

private static final String STARTTAG = "<font color='red'>";
private static final String ENDTAG = "</font>";

2.通过SimpleHTMLFormatter类,我们可以设置高亮文本的样式,它返回一个Formatter类

Formatter formatter = new SimpleHTMLFormatter(STARTTAG, ENDTAG);

3.设置query对象,在query对象中,有查询的关键字

Scorer scorer = new QueryScorer(query);

4.新建一个Highlighter类,并设置参数

Highlighter highlighter = new Highlighter(formatter, scorer);
// 设置高亮后的字符长度
highlighter.setTextFragmenter(new SimpleFragmenter(length));

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值