当前位置: 首页 > news >正文

(转载)使用 Meilisearch 来代替 Elasticsearch

其实,现在我更考虑,使用 Meilisearch 来代替 Elasticsearch 。

99%的初创项目死于没流量,而不是死于流量太大把服务器冲垮。我建议创业公司不要搞这些东西,直接买个鸡前后端分离,最多就做一下local first,如果需要回国就上个优化线路。等到真的全球化推广了,你可以最前端的那一小部分上一下Cloudflare。(我们项目就是为了极致的边缘和弹性计算,被折腾来折腾去上线一次又一次的推迟,都是血和泪的实战教训)----- 摘录

大型项目,老老实实使用能分布式、原生分片的 Elasticsearch 。但是小项目,很适合 Meilisearch 。

本文原文全文完整版 Url 链接 : https://www.ccgxk.com/emlog_dev/692.html

简介

这个 Meilisearch 是一个使用 Rust 编写的搜索引擎,在 2024 年被广泛使用的。它并不是完全替代 Elasticsearch 的,只是着重优化用户的体验。而且适度很快。

我朋友的项目里,有 20 万份文档(绝大部分是英文的),然后每日 8000 日活用户,之前使用 Elasticsearch 每次查询是 180 毫秒,现在是 12 毫秒!

两者的区别

现在给大家简单说一下 Meilisearch 和 Elasticsearch 的一些区别吧,简单说说。

1. 索引位置

Meilisearch 的搜索索引是储存在 内存 里的,在查询上,是不涉及磁盘IO动作的。但是这也意味着你的索引大小就这么被死死限制住了。

2. 查询

Meilisearch 在查询时,也是允许容错的,有个距离叫【莱文斯坦距离】,大约是 5~8 个单词,这个 Meilisearch 在这里距离是里默认允许 1 个拼写错误,然后根据这个距离递增。当然,这个是写死的!不可配置!我感觉这是个经过深思熟虑后的一个产品决策,还是很正确的。

3. 排名

它的排名,是完全基于数学,里面没有 LLM 的东西,完全按照匹配词语、模糊匹配、精确匹配、词语间隔距离、属性等等作为依据来匹配的。这样,它的速度会很快,而且很多时候还能产生更好的结果。

超简单安装部署方式

它的安装,非常简单(linux),默认运行端口是 7700 这个:

curl -L https://install.meilisearch.com | sh
./meilisearch --master-key="your-master-key-here"

需要注意,这个 --master-key 是很重要的,一定要 16 个 UTF-8 的字节的随机字符。如果在生产环境,一定要配置。

之后就是安装 SDK ,比如 JavaScript :

npm install meilisearch

之后,使用相当简单:

import { MeiliSearch } from "meilisearch";const client = new MeiliSearch({host: "http://localhost:7700",apiKey: "your-master-key",  // 你的秘钥
});const index = client.index("recipes"); // 创建查询表const task = await index.addDocuments(recipes); // 你需要检索的文档数据 await client.waitForTask(task.taskUid);  // 异步等待索引完成console.log("Indexed", recipes.length, "documents");  // 完成喽 ~// 这是搜索业务代码
const results = await index.search("carbonara");  // 搜索 carbonara (异步)
console.log(results.hits); // 结果在此!

响应包含hits(匹配的文档)、query(原始查询字符串)、processingTimeMs(引擎端延迟)、limit、offset和estimatedTotalHits。最后一个字段是估算值而非精确计数,因为要保证性能。

很简单,这就是全部的部署和初步使用了!

更具体的使用,可以去他们官网查询。反正 Elasticsearch 大部分有的,它都有。但是查询速度相较于 Elasticsearch 要快很多很多。

不完美

当然,也并不是完美。

  1. Meilisearch 没有类似 SQL 的完整查询功能。
  2. 因为索引放到了内存里,所以内存的大小很关键。
  3. 如果你不是大型互联网公司,日活、并发很高,那 Meilisearch 还好吧。它是单进程设计的,没有分布式,没有分片,只用于中小型互联网公司。日活 十万 是没有问题的。
  4. 现在倒是有混合搜索,但 向量搜索 还不太行。

使用 Meilisearch 的理由,是因为这个简单。10 分钟就能搞完,但是 Elasticsearch 依然是生产环境级别的老大,全球的搜索市场,半壁江山,稳定性毋庸置疑。

而 Meilisearch 是因为,我们很多产品,一共就几万条数据,半天都不来个人看,那使用 Elasticsearch 有点浪费了哈。

在开发互联网产品时,使用 Meilisearch 作为起点还是可以的,反正 API 都差不多,等用户量大了,或者文档数上亿级别了,迁移到其他更专业的工具时,会方便很多。

参考资料:

  1. https://www.meilisearch.com/docs/getting_started/overview
  2. https://www.anisafifi.com/en/blog/i-ditched-elasticsearch-for-meilisearch-heres-what-nobody-tells-you/
http://www.jsqmd.com/news/535885/

相关文章:

  • 更新一波Java学习资料,莫做收藏党~
  • 告别虚拟机‘断网’:手把手教你配置VirtualBox桥接网络,让CentOS稳定上网
  • Dify工作流实战:5步打造个性化英语单词口语练习工具(附完整配置)
  • 嵌入式系统动态内存管理实践与优化
  • iVX vs CodeWave vs OneCode:三大全栈低代码平台实战选型指南(附真实项目案例)
  • 2026武汉工装市场深度解析:五大写字楼装修服务商综合测评与选型指南 - 2026年企业推荐榜
  • 【Java并发】无锁编程常问题目
  • 2026年室内设计装修风格服务商诚信度综合测评与选型指南 - 2026年企业推荐榜
  • OpenClaw新手入门:Qwen3.5-9B镜像一键部署与基础配置
  • 混合专家架构+一站式工作流:WAN视频生成模型如何让8GB显存实现专业级创作
  • 3步终结磁盘臃肿:DriverStore Explorer释放空间实战指南
  • 太阳能路灯优质品牌推荐聚焦质量与节能优势:湖南路灯厂家/LED路灯/乡村路灯/太阳能路灯价格/太阳能路灯安装/太阳能路灯工厂/选择指南 - 优质品牌商家
  • 眼图原理与信号完整性分析技术详解
  • 【连续4年稳定EI检索,论文发表十分靠谱!武汉理工大学主办,SPIE(ISSN: 0277-786X) 出版】第五届光电信息与功能材料国际学术会议(OIFM 2026)
  • 政务大模型微调全攻略,打造高效智能政务AI系统!
  • HG-ha/MTools实战案例:用AI智能工具3步完成短视频配音+封面图生成
  • 计算机毕业设计springboot图书租借系统 基于SpringBoot的图书共享借阅平台 SpringBoot框架下的书籍流通管理系统
  • SMUDebugTool硬件调试工具实战指南:从问题诊断到性能优化
  • Electrobun 调试实战:解决5类核心问题的高效方案
  • 1267:【例9.11】01背包问题
  • Multisim新手必看:5分钟搞定稳压二极管仿真实验(附限流电阻计算技巧)
  • 当GNN推荐遇上业务冷启动:我们如何在电商新用户场景下把点击率提升了15%
  • 电容计算实战:从平行板到球形电容器的5种常见模型解析
  • 【Java并发】CompletableFuture常问题目
  • 人机协作新范式:盘点2026年全网爆红的AI论文写作工具
  • STM32CubeIDE开发环境解析与实战指南
  • 【西安工业大学主办,SAE(美国工程师学会)出版,有ISSN号!EI,scopus双检索,往届已检索 | 智慧交通与未来出行领域EI会议征稿】第二届智慧交通与未来出行国际学术会议(ITFM 2026)
  • 手把手教你把grok-code-fast-1集成到VSCode:打造你的专属‘代理式’编程助手(附避坑指南)
  • 太赫兹市场预测:至2032年这一数字将攀升至接近144.8亿元
  • 终极指南:如何使用GDLauncher轻松管理你的Minecraft游戏体验