这里先假设读者对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));
5.通过Highlighter类的getB

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

1万+

被折叠的 条评论
为什么被折叠?



