开源 来源:架构师修行之路 2025-06-06 08:48:25 阅读:19
Meilisearch是一个开源的搜索引擎,用Rust语言开发,专注于提供极致的用户搜索体验。它的设计初衷就是尽可能地降低开发者搭建高性能搜索系统的门槛。
老实说,我以前搞Elasticsearch,三分钟配置,三天调优,搞得头都大了。而Meilisearch?5分钟内就能让你的应用拥有像Netflix或Spotify那样的搜索体验。
传统搜索引擎设置复杂,调优困难,部署麻烦。Meilisearch打破了这个怪圈:
最刺激的是,它的API设计极其简洁,真的是"人道主义关怀"了。我记得第一次用它,连文档都没细看,就把一个搜索功能接入完成了,这搁以前绝对不敢想。
很多朋友会问,ES那么成熟了,为啥还要换?
坦白讲,Elasticsearch是台坦克,而Meilisearch是辆跑车。前者功能全面但笨重,后者轻巧但速度惊人。
ES适合大型数据分析和复杂日志系统,它能处理PB级数据。而Meilisearch则专注于用户搜索体验,注重速度和相关性。
最大的差别在于上手难度:ES配置文件像天书,Meilisearch几乎零配置。我给新人安利都说:想被搜索配置折磨一周,用ES;想下午茶前把功能上线,选Meilisearch。
我前两天把一个产品目录(约10万条数据)从ES迁到了Meilisearch,整个过程包括数据导入用了不到一小时。搜索速度提升了约3倍,而且默认的相关性排序就已经相当不错。
索引创建超简单:
curl \ -X POST 'http://localhost:7700/indexes' \ -H 'Content-Type: application/json' \ -d '{ "uid": "products" }'
文档添加也是小菜一碟:
curl \ -X POST 'http://localhost:7700/indexes/products/documents' \ -H 'Content-Type: application/json' \ -d '[ { "id": 1, "name": "华为 Mate60 Pro", "description": "最新旗舰手机,性能强劲" }, { "id": 2, "name": "iPhone 15", "description": "苹果最新款手机" } ]'
搜索更是简单到发指:
curl \ -X POST 'http://localhost:7700/indexes/products/search' \ -H 'Content-Type: application/json' \ -d '{ "q": "新款手机" }'
不是我吹,就算输错关键词(比如"新快"而不是"新款"),照样能搜到相关结果,这就是它内置模糊搜索的威力。
按官方测试,Meilisearch在2000万数据量下,搜索延迟仍保持在40ms以内。我自己测的10万级数据,平均响应只有11ms,这速度真不是盖的。
资源占用也相当克制,8GB内存的机器上轻松跑一千万条数据。比起ES动辄几十GB的内存占用,简直是省钱利器。
它还内置RESTful API和各种语言的SDK,集成到现有项目超轻松。
docker run -p 7700:7700 getmeili/meilisearch:latest
curl -X POST 'http://localhost:7700/indexes' -H 'Content-Type: application/json' -d '{"uid": "movies"}'
curl -X POST 'http://localhost:7700/indexes/movies/documents' -H 'Content-Type: application/json' -d '[{"id": 1, "title": "流浪地球", "genres": ["科幻"]}, {"id": 2, "title": "满江红", "genres": ["悬疑", "历史"]}]'
curl -X POST 'http://localhost:7700/indexes/movies/search' -H 'Content-Type: application/json' -d '{"q": "流浪"}'
就是这么简单,秒杀各种复杂配置。
基本上,只要有用户需要搜索的地方,Meilisearch都能让体验提升一个档次。
不过它也有局限,如果你需要超大规模(TB级)的数据分析,或者复杂的日志聚合,可能还是Elasticsearch更适合。
Meilisearch有多种部署方式:
个人项目我推荐Docker,企业应用可以考虑二进制或K8s部署。
放到生产环境别忘了设置API密钥:
docker run -p 7700:7700 -e MEILI_MASTER_KEY="你的密钥" getmeili/meilisearch:latest
项目地址:
https://github.com/meilisearch/meilisearch
Bitwarden 是一款开源的密码管理器,提供强大的安全性和便捷的密码管理功能。本仓库使用的是 Bitwarden 客户端 API 的替代服务器实现,使用 Rust 编写,与官方 Bitwarden
来自深圳本土团队研发的编程语言项目MoonBit正式被Github收录,对于一个仅有两年发展时间的编程语言来说,可谓是一种高度认可。同时MoonBit的核心用户也在迅速增长,以VScode插件用户数为
Dioxus项目的诞生源于开发者们对于更高效、更灵活的跨平台UI解决方案的渴望。随着技术的发展,用户对于应用的需求不再局限于单一的操作系统或设备类型,而是希望能够在不同的平台上获得无缝衔接的体验。然而