代码拉取完成,页面将自动刷新
同步操作将从 苏雄伟/lucene 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
基于lucene与IKAnalyzer的中文搜索demo及学习记录
Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。 Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。
IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包最初,它是以开源项目 Lucene为应用主体的,结合词典分词和文法分析 算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。
介绍以下俩种初始数据的方式:
@GetMapping("/createIndex")
public String createIndex(int limit,int offset) {
// 拉取数据
List<Baike> baikes = baikeMapper.getAllBaike(limit,offset);
Baike baike = new Baike();
//获取字段
for (int i = 0; i < baikes.size(); i++) {
//获取每行数据
baike = baikes.get(i);
//创建Document对象
Document doc = new Document();
//获取每列数据
Field id = new Field("id", baike.getId()+"", TextField.TYPE_STORED);
Field title = new Field("title", baike.getTitle(), TextField.TYPE_STORED);
Field summary = new Field("summary", baike.getSummary(), TextField.TYPE_STORED);
//添加到Document中
doc.add(id);
doc.add(title);
doc.add(summary);
//调用,创建索引库
indexDataBase.write(doc);
}
return "成功";
}
//搜索,实现高亮
@GetMapping("/getSearchText")
public ModelAndView getSearchText(String keyWord,String field,ModelAndView mv) throws Exception {
List<Map> mapList = searchDataBase.search(field, keyWord);
mv.setViewName("/result");
mv.addObject("mapList",mapList);
return mv;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。