Lucene基础(三)-- 中文分词及高亮显示

本文介绍了Lucene中的分词器和高亮显示功能。针对中文分词,文章以IKAnalyzer为例,说明如何使用第三方分词器提高中文处理效果。同时,文章还涉及了如何引入lucene-highlighter库,实现查询结果的高亮显示。
摘要由CSDN通过智能技术生成

Lucene分词器及高亮

分词器

在lucene中我们按照分词方式把文档进行索引,不同的分词器索引的效果不太一样,之前的例子使用的都是标准分词器,对于英文的效果很好,但是中文分词效果就不怎么样,他会按照汉字的字直接分词,没有词语的概念。

使用分词的地方只需要把Analyzer实例化成我们第三方的分词器即可

中文分词有很多,这里使用IKAnalyzer 为例,
下载地址 https://git.oschina.net/wltea/IK-Analyzer-2012FF 现在下来后里面有一篇教程。

高亮

导入lucene-highlighter-xxx.jar 在对查询出来的结果实现高亮显示

 // 关键字高亮显示的html标签,需要导入lucene-highlighter-xxx.jar
            SimpleHTMLFormatter simpleHTMLFormatter = new SimpleHTMLFormatter("<span style='color:red'>", "</span>");
            Highlighter highlighter = new Highlighter(simpleHTMLFormatter, new QueryScorer(query));

            for (int i = 0; i < hits.length; i++) {
                Document doc = isearcher.doc(hits[i].doc);
                // 内容增加高亮显示
                TokenStream tokenStream = analyzer.tokenStream("content", new StringReader(doc.get("content")));
                String content = highlighter.getBestFragment(tokenStream, doc.get("content"));
                System.out.println(content);
            }

Lucene中文分词器

实例:

package lucene_demo04;

import java.io.IOException;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.queryparser.classic.Pars
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值