内容简介:lucenex 基于JDK 1.8 & lucene 8.x 的搜索框架、在不影响原本性能的同时、提升80%的开发效率、降低70%的开发难度!!! 文档 简介:https://gitee.com/Myzhang/luceneplus/blob/master/README.md javadoc:https...
lucenex
基于JDK 1.8 & lucene 8.x 的搜索框架、在不影响原本性能的同时、提升80%的开发效率、降低70%的开发难度!!!
文档
简介:https://gitee.com/Myzhang/luceneplus/blob/master/README.md
javadoc:https://apidoc.gitee.com/Myzhang/luceneplus
Demo:https://gitee.com/Myzhang/luceneplus/tree/master/src/test/java/com/ld/lucenex/demo
入门
创建lucene数据源
new LuceneX(new LuceneXConfig() { @Override public void configLuceneX(BaseConfig me) { me.add("d:/","test",Empty.class); } });
定义实体类
import com.ld.lucenex.field.FieldKey; import com.ld.lucenex.field.LDType; public class Empty{ @FieldKey(type = LDType.IntPoint) private int id; @FieldKey(type = LDType.StringField) private String name; @FieldKey(type = LDType.TextField,highlight = true) private String text; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
添加索引
List<Empty> empties = new ArrayList<>(10); for (int i=0;i<10;i++){ Empty empty = new Empty(); empty.setId(i); empty.setName("新闻"); empty.setText("8月29日,2019世界人工智能大会在上海开幕,本届大会以“智联世界,无限可能”为主题,展示包括中国在内各国最新的AI产品和技术。在本届大会上,除了各国展出的最新AI技术和产品外,由华为、寒武纪、依图等国内企业自主研发的人工智能芯片组成的AI芯片墙更是受到参观者的关注。图为微软带来了智能菜品识别系统,把食物放在收银检测区,便能自觉识别价格。更厉害的是,系统还能给出营养分析报告,例如热量、脂肪、碳水物、蛋白质等含量。"); empties.add(empty); } ServiceImpl<Empty> basisService = ServiceFactory.getService(ServiceImpl.class); basisService.addObjects(empties);
查询索引
ServiceImpl<Empty> basisService = ServiceFactory.getService(ServiceImpl.class); Empty searchOne = basisService.searchOne(new TermQuery(new Term("name","百度一下")));
高亮显示条件
- 字段表明 highlight = true,并且 type = LDType.TextField
@FieldKey(type = LDType.TextField,highlight = true) private String text;
- 必须调用searchList 并且返回类型是
实时索引条件
- 必须调用ServiceImpl内置的添加/更新删除方法
如何自定义 Service 查询接口
import com.ld.lucenex.service.ServiceImpl; public class DemoService<T> extends ServiceImpl<T> { public DemoService(String sourceKey) { super(sourceKey); } }
如何与其他web/非web框架集成
- 只要在项目启动的时候 创建lucene数据源即可
更新日志
v2.0
- 大量改动与之前版本不兼容
- 新增关闭保护,jvm停止前提交所有队列里的数据,保证数据的完整性
- 新增 IndexSource 类代表每一个数据源
- 优化 LuceneX 统一资源管理
- 新增 MyDocument 代替 Object 转 Document 方法
- 新增 ServiceImpl
- 新增 ServiceFactory
- 升级 lucene 为 8.2.0
v1.4
- 新增 searchOneDoc 方法
- 新增 SimpleExample 用例
v1.3
- 增加单个对象添加索引
- 同步实时索引
v1.2
- 增加jfinal、springboot、servlet等集成插件
- 精简代码
- 增加两个实用方法
- 删除2个依赖
- 适配 javabean and map and fastjson 直接添加
- 自动提交&关闭数据、避免丢失数据或手动提交
v1.1
- 补充大量文档注释
- 精简&优化代码
- 修复一个错误的Demo
v1.0
- 去除第三方分词依赖&无用的Jar
- 使用cglib 动态代理创建 Service
- 新增拦截器
- 添加更新 默认异步
亮点
- 轻 ~ 不足千行
- 简 ~ 零配置项
- 全 ~ 内置丰富
- 易 ~ 入门简单
- 快 ~ 接近原生
- 稳 ~ 坚如磐石
- 展 ~ 插件扩展
特点
- 原声Lucene 用法
- 注解式声明字段
- 多库自动切换
- 自带管理资源创建于释放
- 自带高性能近实时索引
- 可持续扩展的Service 接口设计
- 内置丰富常用接口
- 可直接添加 Java 对象与Map集合 无需手动创建 Document
- 支持操作回退
- 可自定义分词器
- 异常退出数据保护
社区
- QQ群号:475349334
安装
下载后使用Maven打包成jar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- cn-ben 1.0.0 发布 基于最大努力通知的分布式事务解决方案
- cn-ben 1.0.0 发布 基于最大努力通知的分布式事务解决方案
- 搭载 E17 WM 适合旧设备的发行版 Elive 经 8 年努力发布了 3.0 版本
- 加班是努力还是表演?
- 你以为只要努力就够了吗?
- 其实,我们也在努力做 CPU
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
笨办法学Python 3
[美]泽德 A. 肖 / 王巍巍 / 人民邮电出版社 / 2018-6-1 / CNY 59.00
本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。 本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个......一起来看看 《笨办法学Python 3》 这本书的介绍吧!