Go mod 好菜系列 - 0x1D meilisearch-go 这盘搜索菜不一定非得上大铁锅

详细聊 meilisearch-go 在站内搜索和轻量全文检索场景里的定位、它和数据库模糊查询的差别,以及什么时候没必要一上来就冲 Elasticsearch。

很多业务一开始的搜索都很朴素:数据库里来个 LIKE %keyword%,能跑就先跑。可只要数据量慢慢上来,搜索体验要求变高,大家就会很快发现数据库并不是天生的全文搜索选手。这个时候很多人第一反应是 Elasticsearch,但其实有些项目并不需要一上来就扛那口大铁锅。meilisearch-go 这类轻量方案就很适合先上桌。

它适合什么场景

  • 博客和文档站站内搜索
  • 中小型商品或内容搜索
  • 后台管理系统的全文检索增强
  • 对搜索体验有要求,但运维复杂度不想太重

它特别适合那些“搜索已经重要了,但还没重要到值得上一整套重型平台”的项目。

它和数据库模糊查询差在哪

不只是快一点,而是心智模型不一样。数据库更擅长结构化过滤,搜索引擎更擅长相关性、分词、排序和搜索体验。你一旦开始关心拼写容错、结果排序、关键词高亮,这条线就已经开始偏向搜索引擎了。

为什么 meilisearch 会被喜欢

  • 接入相对轻
  • 体验上手快
  • 对很多中小场景已经够用
  • 不像重型搜索平台那样一上来就全套运维负担

对很多产品来说,搜索能力不是没有价值,而是“不值得为了第一版搜索系统就背太重的成本”。

它最适合放在哪一层

通常作为检索侧基础设施存在。业务系统负责把需要检索的数据同步进去,查询时再从搜索系统拿回结果。也就是说,别把它看成数据库替代品,而要把它当成“搜索视图系统”。

建立索引和查询的参考代码

client := meilisearch.New("http://127.0.0.1:7700", meilisearch.WithAPIKey("masterKey"))
index := client.Index("posts")

_, err := index.AddDocuments([]map[string]any{
    {"id": 1, "title": "Go mod 好菜系列", "content": "对象存储和任务调度"},
    {"id": 2, "title": "Golang 从入门到放弃", "content": "切片和 map"},
})
if err != nil {
    log.Fatal(err)
}

result, err := index.Search("对象存储", &meilisearch.SearchRequest{
    Limit: 10,
})
if err != nil {
    log.Fatal(err)
}
fmt.Println(result.Hits)

这种例子最能说明 meilisearch 的定位:数据还是你的业务系统在管,搜索系统负责建立索引和返回更像搜索结果的答案。

什么时候别急着上 Elasticsearch

  • 索引规模还不大
  • 查询模型还比较单纯
  • 团队没有太多搜索系统运维经验
  • 只是需要一个明显好于 LIKE 的搜索体验

这类时候,先用更轻的方案往往更明智。不是因为 Elasticsearch 不好,而是很多团队的问题规模还没大到要它那整套武器。

什么情况下它又可能不够

如果你的搜索需求已经涉及非常复杂的聚合、分析、超大规模索引、多维查询和深度定制相关性,那轻量方案就会开始吃力。技术选型最怕的不是“选轻了”,而是还没到那个复杂度就先把自己压垮了。

小结

meilisearch-go 这盘菜很适合收尾这一阶段:

  • 它适合中小型全文搜索和站内搜索
  • 比数据库模糊查询更像真正的搜索体验
  • 比重型搜索平台更轻巧,接入成本更友好
  • 但大规模复杂搜索场景下也别勉强它

Read more

Harness Engineering:从驾驭模型到构建 AI 工厂

Harness Engineering:从驾驭模型到构建 AI 工厂

2026 年,AI 编程工具的竞争焦点发生了根本性转变:决定 AI 助手好不好用的,不再是模型本身,而是包裹在模型外面的那层"Harness"。同一个模型,在不同的 Harness 下,性能差距可以达到 78% vs 42%。 这篇文章将带你深入了解 Harness Engineering——这个正在重新定义 AI 工程实践的新兴领域。 一、什么是 Harness Engineering? Harness 的字面意思是"马具/缰绳"——用来驾驭一匹强壮但不受控的马。在 AI 语境下,Harness 就是 LLM 之外的一切:工具定义、记忆系统、权限模型、反馈循环、文档规范、多

By Fuyu Jia

Claude Code CLI + Ralph:让 AI 自动完成大型编程任务的终极方案

TL;DR 当你的编程任务大到一个 AI 对话窗口装不下时,Ralph 会帮你把任务拆成小块,让 Claude Code CLI 一个接一个地自动完成——每轮都用全新的上下文窗口,不会越写越糊涂。 一、什么是 Ralph? Ralph 是一个开源项目(GitHub 16k+ Stars),基于 Geoffrey Huntley 提出的 "Ralph Pattern" 构建。它的核心理念很简单: 不要让 AI 在一个漫长的会话里做完所有事情,而是把大任务拆成小故事,每个故事用一个全新的 AI 实例来完成。 这解决了 AI 编程中最常见的痛点——上下文窗口耗尽。当对话越来越长,AI 的输出质量会明显下降。Ralph 通过「每轮一个新实例」的方式,

By Fuyu Jia