Lucenex 2.0 发布,努力让搜索更简单
lucenex
基于JDK 1.8 & lucene 8.x 的搜索框架、在不影响原本性能的同时、提升80%的开发效率、降低70%的开发难度!!!
入门
创建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
亮点
- 轻 ~ 不足千行
- 简 ~ 零配置项
- 全 ~ 内置丰富
- 易 ~ 入门简单
- 快 ~ 接近原生
- 稳 ~ 坚如磐石
- 展 ~ 插件扩展
特点
- 原声Lucene 用法
- 注解式声明字段
- 多库自动切换
- 自带管理资源创建于释放
- 自带高性能近实时索引
- 可持续扩展的Service 接口设计
- 内置丰富常用接口
- 可直接添加Java对象与Map集合 无需手动创建 Document
- 支持操作回退
- 可自定义分词器
- 异常退出数据保护
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
slf4j-spring-boot-starter 1.1.3 发布
slf4j-spring-boot-starter 1.1.3 发布了,此次更新如下: 1.使用更规范的项目名称,原 spring-boot-starter-slf4j 2.修复一个参数空指针问题 3.修复基本包装数据类型数组显示为空问题 4.优化逻辑结构
- 下一篇
MDEditor 1.11.3 发布,基于 textarea 封装的 Markdown 编辑器
MDEditor 带有预览功能的简单 Markdown 编辑器,使用 React.js 和 TypeScript 实现。 提供具有语法突出显示,自动按需懒加载 prismjs 的 187 种语言高亮的简单 Markdown 编辑器。 这基于 textarea 封装,因此它不依赖于任何现代代码编辑器,如 Acs,CodeMirror,Monaco 等,同时支持工具栏高度定制。 新版更新内容: 增强 buttonProps 自定义。 优化编辑器过滤大小写 HTML 标签。 添加编辑和预览同步滚动。 特征: ?通过按Tab键缩进行或选定的文本,并使用可自定义的缩进。 ♻️ 基于textarea封装,不依赖于任何现代代码编辑器。 ?不依赖uiw中的任何组件。 ?新行上的自动有序无需列表。 ?支持自动按需懒加载prismjs的 187 种语言高亮。 ?支持编辑和预览滚动条联动效果。 ?Gitee 实例预览:https://uiw.gitee.io/react-md-editor/ ?Github 实例预览:https://uiwjs.github.io/react-md-edito...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果