赞
踩
能支持文件的上传,下载
要能根据关键字,搜索出文件,要求要能搜索到文件里的文字,文件类型要支持 word,pdf,txt
文件上传,下载比较简单,要能检索到文件里的文字,并且要尽量精确,这种情况下很多东西就需要考虑进去了。这种情况下,我决定使用 Elasticsearch 来实现。
因为准备找工作刷牛客的原因,发现很多面试官都问到了 Elasticsearch,再加上那时候我连 Elasticsearch 是什么东西都不知道,所以就决定尝试一下新东西。不得不说 Elasticsearch 版本更新的是真的快,前几天才使用了 7.9.1,结果 25 号就出来了 7.9.2 版本。
Elasticsearch 是一个开源的搜索文献的引擎,大概含义就是你通过 Rest 请求告诉它关键字,他给你返回对应的内容,就这么简单。
Elasticsearch 封装了 Lucene,Lucene 是 apache 软件基金会一个开放源代码的全文检索引擎工具包。Lucene 的调用比较复杂,所以 Elasticsearch 就再次封装了一层,并且提供了分布式存储等一些比较高级的功能。
基于 Elasticsearch 有很多的插件,我这次用到的主要有两个,一个是 kibana,一个是 Elasticsearch-head。
kibana 主要用来构建请求,它提供了很多自动补全的功能。
Elasticsearch-head 主要用来可视化 Elasticsearch。
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。
项目地址:https://github.com/YunaiV/ruoyi-vue-pro
首先安装 Elasticsearch,Elasticsearch-head,kibana,三个东西都是开箱即用,双击运行 。需要注意的是 kibana 的版本要和 Elasticsearch 的版本对应。
Elasticsearch-head 是 Elasticsearch 的可视化界面,Elasticsearch 是基于 Rest 风格的 API 来操作的,有了可视化界面,就不用每次都使用 Get 操作来查询了,能提升开发效率。
Elasticsearch-head 是使用 node.js 开发的,在安装过程中可能会遇到跨域的问题:Elasticsearch 的默认端口是 9200,而 Elasticsearch-head 的默认端口是 9100,需要改一下配置文件,具体怎么改就不详细说啦,毕竟有万能的搜索引擎。
Elasticsearch 安装完成之后,访问端口,就会出现以下界面。
Elasticsearch 主页面
基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。
项目地址:https://github.com/YunaiV/onemall
有两个需要解决的核心问题,文件上传和输入关键词查询。
首先对于 txt 这种纯文本的形式来说,比较简单,直接将里面的内容传入即可。但是对于 pdf,word 这两种特殊格式,文件中除了文字之外有很多无关的信息,比如图片,pdf 中的标签等这些信息。这就要求对文件进行预处理。
Elasticsearch5.x 以后提供了名为 ingest node 的功能,ingest node 可以对输入的文档进行预处理。如图,PUT 请求进入后会先判断有没有 pipline,如果有的话会进入 Ingest Node 进行处理,之后才会正式被处理。
引用自 Elastic 中国社区
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。