美丽搜索,MeiliSearch
![美丽搜索,MeiliSearch](https://static001.geekbang.org/infoq/50/50613abecc4af357dda517c059f729c1.png)
好久不更新博客了,其实不是不想更,也确实积攒了很多想聊的话题,只是在等一个契机。
今天发现了一个很好用的工具,上手及其丝滑,而且也的确可以解决很多问题,按捺不住想要分享一下。
背景
检索模块的设计应该是大部分系统架构中一个不可或缺的环节,为啥这么说呢?当下的时代背景,我们开发的系统每天都会产生大量的日志,比如 Nginx 产生的请求日志,系统本身各种类型的日志,按类型分,还可以分成常规日志,异常日志,告警日志等等。
这些日志是系统运行状态的产物,可以帮助我们排查系统运行过程中的问题,是保证服务正常运转的关键参考信息。
因此,可以快速的检索日志数据,便是系统开发过程的一项刚需。
常规做法
在日志搜集,检索,操作相关方面,比较普遍的做法是集成 ElasticStack,比如 ELK,EFK 等等方案,都比较成熟。但对于自动化程度偏弱,开发能力不的团队,部署一套基于 ES 的日志管理服务还是有一点门槛的。
那有没有更友好,更方便,让小团队也可以丝滑接入并集成到系统中的检索构件呢?
或许,可以试试 MeiliSearch!
MeiliSearch
官方介绍
地址:https://www.meilisearch.com/
仓库:https://github.com/meilisearch/meilisearch
这就不多说了~
小 Battle
对于和竞品的对比,MeiliSearch 的官方文档上列了几个对比图,我挑了几个放一下,更具体可以参照这里:https://www.meilisearch.com/docs/learn/what_is_meilisearch/comparison_to_alternatives
关于开源协议(商业友好程度)
![](https://static001.geekbang.org/infoq/cf/cf5cfd5600bff448d56cd2e58c5d403d.png)
SDK 生态(部分)
![](https://static001.geekbang.org/infoq/9e/9e3ededc52e14673dc6b3519e2c2aa30.png)
文档架构
![](https://static001.geekbang.org/infoq/b9/b9c8d3fc8deac4e0710755ba99ffc4c0.png)
安全性
![](https://static001.geekbang.org/infoq/80/805c55c55aa44f304afc9408faef5d3c.png)
AI 加持能力(MeiliSearch 几乎拉满)
![](https://static001.geekbang.org/infoq/60/60f0e8eccea34445ad33638c5874f6be.png)
上手
事实上,官方文档里也有 QuickStart,大伙完全可以参照官方文档里的介绍自己试一下。我这里就是结合实际的操作,简单镜像一下官网的操作,也算是非官方的汉化一下吧,仅供参考~
这部分我是在本地的 WSL(Ubuntu 22.04)环境和腾讯云的 Debain 系统上分别测试,均可以正常安装,非常丝滑,这里以 WSL 的安装过程为例
下载脚本
![](https://static001.geekbang.org/infoq/d0/d0323537e3e5903ae157a6c74e766dee.png)
安装
![](https://static001.geekbang.org/infoq/2f/2fe0fc3279545e3a2d13d8b26932d7c5.png)
准备测试数据
官网提供了一个 movics.json(https://www.meilisearch.com/movies.json)的测试数据,可以直接下载,并上传到 meilisearch 的相同路径下
![](https://static001.geekbang.org/infoq/18/186cff496e3ab13b03001a0238dd970d.png)
然后,另起一个命令窗口,执行以下命令,导入数据
完成后会看到如下结果
![](https://static001.geekbang.org/infoq/7c/7c3f3d00ab2297b001cd45725cbe978c.png)
检查下状态
![](https://static001.geekbang.org/infoq/85/854675e852aaf543a60f16f82ddb5d94.png)
试一下在命令行窗口检索
![](https://static001.geekbang.org/infoq/fd/fd7dc0e374dbf6b114374baead93dabf.png)
这里我的窗口没有格式化 json 数据,大家可以参照官网,或者自己试试看。
集成界面(类似 Kibana)
当我们在执行一系列操作的时候,最初运行 meilisearch 的窗口会实时的打印一些日志情况,就像这样👇
![](https://static001.geekbang.org/infoq/c2/c2a0dab7d19a4ec884c4d32b4ad33f55.png)
meilisearch 也提供了一个集成好的界面环境,默认使用了 7700 端口,可以直接使用,访问http://localhost:7700/
![](https://static001.geekbang.org/infoq/ed/eda992b4482c1bf5b1b4c6a6db631785.png)
在这个窗口检索,就友好多了,而且速度也很快,对于想要接入检索系统来优化自己的日志管理的团队来说,是非常好的选择,我觉得,这甚至可以集成到相关的正式业务当中,直接面向用户也是 ok 的。
好了,大概就这些,最后再说两句感想。其实我们做系统开发工作,追求稳定性是无可厚非的,但这要有一个前提,你的软件系统在可用性,可靠性,安全性,性能,易操作性这些质量属性上,是否达到了一定高的标准,是否能满足当下以及未来一段时日的用户需求,是否能提供足够稳定的用户体验,如果不能,那所谓的追求稳定,在我看来不过是偷懒的借口。不破不立,创新就是要不停的折腾,虽然过程可能会让人觉得你做的东西乱七八糟,但当业务全部集成好的那一刻,也许他们都会闭嘴。开发人员,还是要专注自己喜欢的领域,尤其一线的开发人员,更要专注技术,不要参与政治斗争,更不要成为政治斗争的牺牲品,把持好自己,做正确的事,好好苟住。
版权声明: 本文为 InfoQ 作者【为自己带盐】的原创文章。
原文链接:【http://xie.infoq.cn/article/0eb33aa3466b07a4e4e5aa6c7】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论