# yupi_search **Repository Path**: giteetcj/yupi_search ## Basic Information - **Project Name**: yupi_search - **Description**: 知识星球 - 聚合搜索项目作业 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-03 - **Last Updated**: 2023-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YUPI-Search: 知识星球项目(聚合搜索平台 + 智能BI项目) ## 架构 #### 1、前端框架 > YUPI-Search 整个前端框架依赖 layui 框架,除了绘图需要的echarts和登录加密的jsencrypt再无其他任何第三方依赖。 #### 2、后端框架 > YUPI-Search 是在Mybatis逆向工程的上面进行修改的。 > https://gitee.com/giteetcj/layuiGenerator.git - spring boot v2.7.1 - mybatis mybatis-plus v 3.4.1 - mysql - spring-security + jwt - easyexcel - yuchongming ## 内容 #### 3、BI - 前端 - 使用经典的layui表格展示表格的列表,并在已生成结论的记录旁边加上查看按钮。 - 点击查看按钮可以查看echarts统计图和AI得出的结论。 - 填写分析目标、标题和类型,再上传一个excel文件即可,比较方便。 #### 4、BI - 后端 - 实现了根据传入的信息自定义Prompt,通过调用鱼聪明AI自动生成图标json和结论,返回给前端渲染 - 将excel内容进行压缩成csv可以减少AI题词的输入量 - 对传入的excel文件的后缀名和大小进行了校验 - 异步提交AI任务,可以提高前端响应速度 #### 5、搜索 - 后端 - 由于教程比较精彩,已经将聚合搜索加入在逆向工程中。 - 实现多类数据源的整体搜索使用 CompletableFuture 并发搜索进一步提升搜索接口性能 - 使用elasticsearch替代mysql的模糊匹配 - 使用全量+增量的定时任务来实现es与数据库的数据同步 - 使用了动态mapper,需要在生成的es实体类中自行进行修改(删去或修改内容) - 使用QueryBuilder组合查询条件类进行es的灵活查询 ## 开始 **第 1 步:拉取项目** - 使用git拉取项目 https://gitee.com/giteetcj/yupi_search.git - 在idea编辑器上面打开项目 **第 2 步:插入数据** - 打开mysql,执行sql文件夹下面的create_table.sql **第 3 步:启动elasticsearch** - elasticsearch 7.17.9 - ik 7.17.7 需要把配置文件里面的7.17.7改成7.17.9 **第 4 步:启动后端** - org.ymf.LayuiGeneratorApplication 运行这个main方法 **第 5 步:启动前端** - 文件夹nginxconfig里面放的是nginx的配置文件,需要放在nginx的config文件夹下面 - nginx 1.21.6 放在项目的同级文件夹下面,启动nginx **第 6 步: chrome访问http://localhost:8089** - 用户名: yupi - 密码: 123456 ## 收获 - 调用鱼聪明AI分析表格并展示。 - 学习了一些AI提词的经验。 - 使用hutool对文件的后缀进行校验。 - 学习了elasticsearch的使用(restful增删改查)。 - 了解了ik分词器的两种方式,它们的区别。 - 使用kibana查看elasticsearch。 - 使用实体类对elasticsearch索引进行映射,可以这样快速操作。 - 使用QueryBuilder组合查询条件类进行es的灵活查询。 - 学习logstash使用配置文件的方式启动。 - 了解了canal,它的作用原理。