FastDfs与ElasticSearch和Mysql完成海量数据存储搜索功能

先附上项目地址:项目地址

fdfs-es-demo

介绍

springboot+mysql+fastdfs+elasticsearch完成海量文件文件上传下载搜索功能demo,现可根据文件名称、作者、以及分类id进行搜索,如需更多功能请自行完善

软件架构

├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─wyb
│ │ │ └─fastdfs
│ │ │ │ FastdfsDemoApplication.java 项目启动类
│ │ │ │
│ │ │ ├─config
│ │ │ │ ElasticSearchConfig.java es配置类
│ │ │ │ FileConfig.java 文件配置类
│ │ │ │
│ │ │ ├─constant
│ │ │ │ EsConstant.java es常量类(主要配置索引名称)
│ │ │ │
│ │ │ ├─controller
│ │ │ │ FastDfsFileController.java 与fdfs有关文件上传下载操作
│ │ │ │ FileController.java 管理端相关操作,查看文件列表,与es有关文件验证导入es
│ │ │ │ SearchController.java 文件搜索服务
│ │ │ │
│ │ │ ├─dto
│ │ │ │ └─es
│ │ │ │ FileEsModel.java ES传输模型 与mapping对应
│ │ │ │
│ │ │ ├─entity
│ │ │ │ FileCategoryEntity.java 文件实体
│ │ │ │ FileEntity.java 文件分类实体
│ │ │ │
│ │ │ ├─mapper
│ │ │ │ FileMapper.java 文件数据库dao
│ │ │ │
│ │ │ ├─service
│ │ │ │ │ DownloadService.java fdfs下载服务实现
│ │ │ │ │ FileSearchService.java es搜索服务接口
│ │ │ │ │ FileService.java 管理端查看、验证服务接口
│ │ │ │ │ UploadService.java fdfs上传服务实现
│ │ │ │ │
│ │ │ │ └─impl
│ │ │ │ FileSearchServiceImpl.java es搜索服务实现
│ │ │ │ FileServiceImpl.java 管理端查看、验证服务实现
│ │ │ │
│ │ │ ├─utils
│ │ │ │ FastDfsUtil.java 工具类(使用fastdfs-client-java时配置)
│ │ │ │
│ │ │ └─vo
│ │ │ SearchParam.java 前端查询参数封装
│ │ │ SearchResult.java 前端返回结果封装
│ │ │
│ │ └─resources
│ │ │ application.properties #数据源配置(改成自己地址)
│ │ │ application.yml #fastdfs 配置(改成自己地址)
│ │ │ docker安装es步骤.txt
│ │ │ fastdfs搭建步骤.txt
│ │ │ fdfs_client.conf 使用fastdfs-client-java时配置(本项目不用)
│ │ │ file-mapping.txt es mapping映射(与es交互前,需先在kibana中创建好)
│ │ │ file-search-demo.txt kibana中请求格式与响应格式
│ │ │ file.sql 文件sql
│ │ │ file_category.sql 文件分类sql
│ │ │
│ │ ├─mybatis
│ │ │ │ mybatis-config.xml mybatis配置文件
│ │ │ │
│ │ │ └─mapper
│ │ │ FileMapper.xml file 数据库crud
│ │ │
│ │ ├─static
│ │ │ index.html 上传下载前端测试页面

安装教程

拉下代码,改好配置,启动fdfs的tracker,storage,docker启动es,kibana
运行项目启动类

使用说明

浏览器输入localhost:8080即可进入index.html进行文件上传下载

localhost:8080/dbfile/list 查询文件列表

localhost:8080/dbfile/verify?fileId=xxx 进行文件上传es

http://localhost:8080/search/searchFileList?keyword=xxxauthor=xxx&categoryId=xxx 文件搜索

fdfs支持多节点部署,es目前单节点,但也可集群化,springboot单体也可微服务化,目前可满足大多数文件上传下载搜索功能业务,细化需求可自行开发

支持与交流

如果觉得项目有用,可以对孩子鼓励鼓励,一分两分不嫌少

或者可以加V交流哦~(加V请表明来意)

FastDfs与ElasticSearch和Mysql完成海量数据存储搜索功能相关推荐

  1. Spring Boot项目中集成Elasticsearch,并实现高效的搜索功能

    Spring Boot项目中集成Elasticsearch 前言 环境准备 引入依赖 配置Elasticsearch连接信息 定义实体类 定义Elasticsearch操作接口 实现搜索功能 总结 前 ...

  2. 【ElasticSearch和whoosh实现项目中搜索功能】

    文章目录 说明: 一.单表搜索 二,全局搜索 方式一:haystack+whoosh+Jieba 方式二:haystack+ES 总结: 说明: 我们的项目中经常会遇到搜索的功能,最近也写过搜索的功能 ...

  3. 如何使用MySQL的全文本搜索功能

    全本文搜索 1.全文本搜索 1.1理解全文本搜索 2.使用全文搜索 2.1启用全文本搜索支持 2.2进行全文本搜索 2.3使用查询扩展 2.4布尔文本搜索 2.5全文搜索的使用说明 1.全文本搜索 1 ...

  4. ElasticSearch和whoosh实现项目中搜索功能

    搜索 自己最近总结了一下项目中实现过的搜索功能,接下来就通过具体的python项目来进行说明. 一.单表搜索 实现对于特定表中的某些字段的模糊搜索匹配,比如需要根据关键字搜索教师表中的授课教师或者所教 ...

  5. mysql的全文搜索功能

    12.7. 全文搜索功能 12.7.1. 布尔全文搜索 12.7.2. 全文搜索带查询扩展 12.7.3. 全文停止字 12.7.4. 全文限定条件 12.7.5. 微调MySQL全文搜索 MATCH ...

  6. 一起进阶学习JAVA:MySQL海量数据存储与优化

    一起进阶学习JAVA:MySQL海量数据存储与优化 第一部分 分库分表实战及中间件 1.1 背景介绍 1.1.1 背景描述 刚开始我们的系统只用了 单机数据库 随着用户的不断增多,考虑到系统的高可用和 ...

  7. ClickHouse 在日志存储与分析方面作为 ElasticSearch 和 MySQL 的替代方案

    2018年,我写过一篇关于Clickhouse的文章,这段内容在互联网上仍然很流行,甚至被多次翻译.现在已经过去两年多,同时 Clickhouse 的开发节奏仍然活跃: 上个月有 800 个合并的 P ...

  8. 海量数据查询方案mysql_Mysql海量数据存储和解决方案之二----Mysql分表查询海量数据...

    关键词:分库分表,路由机制,跨区查询,MySQL 数据变更,分表数据查询管理器与线程技术的结合,Cache 前面已经讲过Mysql实现海量海量数据存储查询时,主要有几个关键点,分表,分库,集群,M-S ...

  9. MySQL海量数据存储与优化(上)

    MySQL起源和分支 MySQL 是最流行的关系型数据库软件之一,由于其体积小.速度快.开源免费.简单易用.维护成本 低等,在集群架构中易于扩展.高可用,因此深受开发者和企业的欢迎. Oracle和M ...

最新文章

  1. 网络工程师_要记录下来的一些题_4
  2. Git入门教程(上)
  3. 任意长度的字典生成算法
  4. Agile in a Flash:万物皆渐进(14)
  5. java maven清理打包运行
  6. gradle入门,安卓gradle入门
  7. iis7设置html支持asp,Win7下启用IIS7配置ASP运行环境的详细方法
  8. java更好的语言_Java,如果这是一个更好的世界
  9. 数据库原理归档——对于数据库原理最全的总结
  10. Unity3d发布web版无法连接数据库
  11. UVALive 4725 Airport(二分)
  12. json解析与序列化
  13. 3S基础知识:MapInfo MapX中如何保存专题地图
  14. 华为android怎么换字体大小,华为手机设置字体大小的具体步骤
  15. EyouCMS瀑布流分页详细教程
  16. windows server域服务器作用,windows server 2012 r2AD域搭建以及域的简单功能介绍
  17. xcode6 下载地址
  18. eladmin 批量导入实现方法
  19. 利用canvas的rotate创建一个简易的风车动画
  20. Linux管道命令及管道相关命令(详细)

热门文章

  1. java使用poi逐页读取ppxt,JAVA-WEB(通过POI)实现PPT在线预览
  2. hive 启动报错java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%..
  3. fpga实操训练(从模块到系统开发)
  4. 暴力破解键盘上所有组合的密码需要多久?
  5. CSDN博客专用动态图小程序的推荐---ScreentoGIF教程
  6. Selenium自动化测试代理问题
  7. Aop介绍 ,aop使用 aop解释
  8. multiple definition of...
  9. 把握出租车行驶的数据脉搏 :出租车轨迹数据给你答案!
  10. Linux管道到底能有多快?