Meilisearch开源的搜索引擎
Meilisearch是一个开源的搜索引擎,用Rust语言开发,专注于提供极致的用户搜索体验。它的设计初衷就是尽可能地降低开发者搭建高性能搜索系统的门槛。
老实说,我以前搞Elasticsearch,三分钟配置,三天调优,搞得头都大了。而Meilisearch?5分钟内就能让你的应用拥有像Netflix或Spotify那样的搜索体验。
为什么它这么火?
传统搜索引擎设置复杂,调优困难,部署麻烦。Meilisearch打破了这个怪圈:
• 速度快得离谱:搜索结果亚毫秒级返回,完全不拖泥带水 • 开箱即用的模糊搜索:不用配置一大堆参数,直接支持拼写错误也能搜到 • 相关性排序贼准:默认算法已经超过很多商业搜索引擎 • 全文搜索+高级过滤:复杂查询也能轻松应对 • 支持40多种语言:包括中文分词,不用额外折腾
最刺激的是,它的API设计极其简洁,真的是"人道主义关怀"了。我记得第一次用它,连文档都没细看,就把一个搜索功能接入完成了,这搁以前绝对不敢想。
它跟Elasticsearch有啥区别?
很多朋友会问,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的内存占用,简直是省钱利器。
核心特性一览
• 即时搜索:用户输入一个字母就能看到结果,像Google那样 • 排序定制:可以根据用户行为定制搜索结果排序 • 地理位置搜索:支持按距离排序,电商和外卖应用福音 • 多语言支持:中英日韩法德...40多种语言自动识别 • 高亮显示:自动高亮匹配词,前端开发省心 • 同义词处理:"手机"和"电话"可以被识别为相同概念 • 停用词处理:自动忽略"的"、"了"等对搜索无意义的词 • 分面搜索:类似电商筛选功能,可按品牌、价格区间等过滤
它还内置RESTful API和各种语言的SDK,集成到现有项目超轻松。
5分钟上手指南
1. 用Docker启动(真的超简单):
docker run -p 7700:7700 getmeili/meilisearch:latest
2. 创建你的第一个索引:
curl -X POST 'http://localhost:7700/indexes' -H 'Content-Type: application/json' -d '{"uid": "movies"}'
3. 添加一些数据:
curl -X POST 'http://localhost:7700/indexes/movies/documents' -H 'Content-Type: application/json' -d '[{"id": 1, "title": "流浪地球", "genres": ["科幻"]}, {"id": 2, "title": "满江红", "genres": ["悬疑", "历史"]}]'
4. 搜索:
curl -X POST 'http://localhost:7700/indexes/movies/search' -H 'Content-Type: application/json' -d '{"q": "流浪"}'
就是这么简单,秒杀各种复杂配置。
适合什么场景?
• 电商网站的商品搜索 • 内容平台的文章/视频搜索 • 应用内搜索功能 • API目录或文档搜索 • 客服知识库搜索
基本上,只要有用户需要搜索的地方,Meilisearch都能让体验提升一个档次。
不过它也有局限,如果你需要超大规模(TB级)的数据分析,或者复杂的日志聚合,可能还是Elasticsearch更适合。
部署选择
Meilisearch有多种部署方式:
• Docker(最简单) • 二进制文件(性能最佳) • 云服务(Meilisearch Cloud,省心但要付费) • Kubernetes(企业级部署)
个人项目我推荐Docker,企业应用可以考虑二进制或K8s部署。
放到生产环境别忘了设置API密钥:
docker run -p 7700:7700 -e MEILI_MASTER_KEY="你的密钥" getmeili/meilisearch:latest
项目地址:
https://github.com/meilisearch/meilisearch
-
Lapce 采用 Rust 语言编写的代码编辑器
Lapce 是一款完全采用 Rust 语言编写的代码编辑器,其核心设计借鉴了 Xi-Editor 中的 Rope Science 技术,确保在处理海量文本数据时依然保持高速运算。为了追求极致性能,它利
-
Bitwarden 开源的密码管理服务
Bitwarden 是一款开源的密码管理器,提供强大的安全性和便捷的密码管理功能。本仓库使用的是 Bitwarden 客户端 API 的替代服务器实现,使用 Rust 编写,与官方 Bitwarden
-
国产编程语言MoonBit正式被Github收录!两年核心用户数突破3万
来自深圳本土团队研发的编程语言项目MoonBit正式被Github收录,对于一个仅有两年发展时间的编程语言来说,可谓是一种高度认可。同时MoonBit的核心用户也在迅速增长,以VScode插件用户数为
关注公众号:拾黑(shiheibook)了解更多
赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- KaiwuDB分布式、多模融合,支持原生AI的数据库产品
- BlueHost主机提供免费域名吗?
- 韩元汇率对人民币2023年11月13日
- 【杂谈快报】雷军:小米14首销第一周已超百万台 ;华为芯片获百度巨额订单
- 坐标新疆!我国正式启动全球首个5G异网漫游试商用
- Meta CTO专访:2023年AR/VR、元宇宙的下一步怎么走
- 爱立信预估今年5G用户数将破10亿大关
- 破局“超越期”:中兴亮剑政企市场
- B站首个UP主付费观看视频还是来了!价格“劝退”网友
- 【大公司创新情报】投资29亿元,360成哪吒汽车管理团队外第一大股东
- 贝索斯一“上天”,维珍银河就跌了
- 为什么 Netflix 这么强?网飞 CEO 哈斯廷斯跟陆奇摊牌了