由于公司项目需要用到全文搜索这个功能,而且要求轻量级,不能用复杂的ES,于是在网上搜索资料。一次偶然机会,发现了一个名字特别显眼的搜索引擎——MeiliSearch!
MeiLi(美丽),这么直白用拼音命名项目,这越发激起了小编的好奇心,好了,带着满脑的疑问,我们来研究一下这个美丽的搜索引擎吧!
MeiliSearch,顾名思义,美丽的搜索引擎,不仅美丽,其上手速度和小规模数据量下的体验也比 ElasticSearch 更加出色。
在大型同性交友平台 Github 上面查了一下这个项目,发现是近2年火起来的,已经有将近30K+Star了,非常优秀!据说是Meili是在挪威神话中的神,指 “可爱的人”,是托尔的兄弟,果然中华文明博大精深,都流传到国外了。
MeiliSearch 是一个强大、快速、开源、易于使用和部署的搜索引擎。搜索和索引都是高度可定制的,提供开箱即用的功能,如错字容忍、过滤器和同义词。
最最最重要的是,它是支持中文搜索的,对于国人真的是太友好了。它编写的语言是 Rust,虽然小编没学过 RUST,但知道 RUST 性能非常好,可以媲美C++,那应用在搜索引擎这块,也是可以起飞了。
估计大家都等着急了,接下来就来体验一下这个轻量美丽的搜索引擎。
MeiliSearch 的安装方式有很多,支持 Docker 容器安装、二进制方式安装,也支持 RUST 环境下克隆项目源码运行。
这里我们使用二进制方式安装,为了快速体验,直接使用简单粗暴的 docker 方案安装。
docker run -itd -p 7700:7700 -v /home/meilisearch/data:/meili_data getmeili/meilisearch
如上图所示,已经成功运行了一个 MeiLiSearch 服务。
MeiLiSearch 服务自身提供可视化的 WEB 搜索页面,我们可以访问一下这个页面来验证服务是否运行
如上图所示,我们可以在浏览器上看到搜索界面,由于还没有创建索引和文档,所以是没有数据的。
它的数据存储:Index > Document ,和 ES 十分相似,但又简单了许多。
由于任何搜索引擎都需要先添加索引,我们先添加索引。
我们使用简单的 CURL 创建索引。
curl
-X POST 'http://localhost:7700/indexes'
-H 'Content-Type: Application/json'
--data-binary '{
"uid": "movies",
"primaryKey": "id"
}'
索引是存储文档的地方,文档代表的是真正的数据。
我们同样使用CURL批量创建文档
# 添加文档到 movies 索引
curl
-X POST 'http://localhost:7700/indexes/movies/documents'
-H 'Content-Type: application/json'
--data-binary @movies.json
# movies.json为测试数据,具体数据可到meilisearch官网下载
这时,在界面上可以看到我们之前添加的数据。
尝试搜索一些关键词,可以看出,我们搜索就立即返回结果,并且带有高亮显示,速度非常快!
另外,MeiliSearch 还提供 php、JAVA、Python/ target=_blank class=infotextkey>Python 等语言的 SDK,直接无缝对接,开箱即用。
对于中小型企业,特别是数据量不大的,都可以使用 MeiliSearch 这款搜索引擎,轻量级安装部署、搜索速度快到极致,名副其实的轻量级且美丽。
以上就是本期分享,如果大家对此感兴趣,欢迎各位关注、留言,大家的支持就是我的动力!