依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 20|回复: 0

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

[复制链接] 主动推送

9282

主题

9334

帖子

9974

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9974
发表于 2024-8-15 11:03:51 | 显示全部楼层 |阅读模式
一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码
一、项目简介
基于 Spring Boot 和 Lucene 核心库构建的一款简单、灵活、性能强劲的搜索引擎。Lucene Server通过配置,可 零代码 实现对海量数据的实时同步。为企业级应用提供实时的、高效的搜索引擎基础服务。
二、功能概述关键特性
  • 零代码实现:Lucene Server 采用配置优先的设计理念,允许用户通过简单的配置定义索引结构和搜索规则,从而避免了复杂的代码开发过程。
  • 海量数据支持:利用 Lucene 的强大能力,Lucene Server 能够处理和搜索大规模数据集,无论是文档、产品目录还是用户评论,都能迅速响应查询请求。
  • 高度可定制:虽然无需编写代码,但 Lucene Server 提供了丰富的配置选项,允许用户根据具体需求调整索引策略、搜索算法和结果排序,满足个性化业务场景。
  • 易于集成与扩展:基于 Spring Boot 构建,Lucene Server 能够轻松地与现有的微服务架构融合,同时也支持通过插件机制添加新的功能模块,保证系统的灵活性和可扩展性。
  • 强大的搜索语法:支持复杂的查询语法,包括布尔运算、短语匹配、模糊搜索和范围查询,使搜索更加精准和智能。
  • 实时更新与高可用性:通过CDC(Change Data Capture ,数据变化捕获),Lucene Server 支持准实时数据更新,确保搜索结果的时效性。同时,通过集群部署和负载均衡,实现高可用和故障恢复,保障服务的稳定运行。

主要功能
  • 全文检索服务:
  • 基于Springboot和Lucene构建,提供类似于Elasticsearch的高效全文检索能力。
  • Web管理界面:
  • 内置直观的Web界面,支持数据源集成、任务调度、权限管理等配置,简化系统管理流程。
  • 灵活的数据集成:
  • 通过Web界面配置,轻松集成各类数据源,扩展性良好。
  • 任务管理与监控:
  • 实现任务调度与监控,确保数据处理和检索任务的顺利执行。系统各种任务的解释,请参看Wiki
  • 轻量级客户端API:
  • 提供极简的Java客户端,仅包含两个文件,采用类似MyBatis-Plus的条件构造器模式,便于快速集成。支持索引库的增删改查、Count统计及Group聚合查询,满足多样化检索需求。支持客户端权限验证,保障数据安全与访问控制。客户端不引入额外第三方库,保证系统纯净度与稳定性。
  • 简易集成与维护:
  • 清晰的架构与接口设计,降低集成复杂度,简化日常维护工作。

Lucene Server致力于提供一个高性能、易用且安全的全文检索解决方案,适用于多种应用场景。
三、技术选型
索引数据通过三种模式实现变化:(1)通过CDC任务(2)通过SQL任务 (3)通过客户端


一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

服务器与客户端之间通过Http协议,实现数据的增删改查,以及Group和Count查询等功能。


一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

使用

  1. 1、下载代码,编译通过(只需要编译后台,前台不需要编译,纯手写没有引用和webpack、nodejs等)。
  2. 2、确保根目录有如下目录database、queue、storage、webapp三个目录
  3. 3、修改系统的数据库连接,在web项目的resources的config目录下的db.setting, 把数据库路径修改正确
  4. 4、系统启动,进入http://localhost:9999/manager/index.html管理界面,用户名和密码:admin
  5. 5、先创建数据源
  6. 6、创建索引和设置字段( :boom: 注意:第一次创建索引,字段要打开保存一次)
  7. 7、根据需要创建任务或者CDC源(CDC目前只支持mysql,其他类型数据库还在开发中,有需求可以在Issues里面提)
复制代码
客户端案例
  1. public static void testQuery(String[] args) {
  2.         QueryClient queryClient = new QueryClient("http://localhost:9999","client","123456");
  3.         ClientWrapper clientWrapper = ClientWrapper.create()
  4.                 .SELECT("*")
  5.                 .Page(1,10)
  6.                 .From("supervision")
  7.                 .eq("main_kind","1");
  8.         System.out.println(clientWrapper.build());
  9.         String str = queryClient.request(clientWrapper);
  10.         System.out.println(JsonUtil.formatJson(str) );
  11. }
复制代码
更多例子参考,client项目的test目录 和Wiki


性能:
  1. 测试主机cpu:i7-10100 2.9,压力测试内存不超过600M。
复制代码
【搜索性能】
  1. 180万数据,80字段,10万次查询3个查询条件,1个排序。50线程,10万次搜索,花费时间: 24 秒 ,每秒请求: 4152 次
复制代码
【SQLTask索引性能】
  1. 180万数据,80字段,Idea测试 2分30秒左右,部署测试1分30秒左右。
  2. 2300万数据,20字段,10分钟左右。
复制代码
【CDC索引性能】
  1. 180万数据,80字段,10分钟左右。CDC因为是UPDATE模式需要构建Query先删除数据,然后再索引。不过性能主要卡在Canal Server。
复制代码
技术路线:
  1. 1. Springboot 2.x
  2. 2. Lucene 8.x
  3. 3. MySql Binlog
  4. 4. 连接池:自己搓的动态数据库连接池
  5. 5. 数据库:Sqlite3
  6. 6. 前端框架,Vue3(无nodejs,无webpack,无vue-cli),Html+Vue+Vue Sfc Loader
复制代码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务 简单、灵活、性能强劲的java源码

一款企业级实时高效的搜索引擎服务  简单、灵活、性能强劲的java源码



游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0

提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:14 Bytes  售价:69金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员5折;永久VIP免费】
安全检测,请放心下载













相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-8-24 18:12

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表