Skip to content

大家好,我是农村程序员,独立开发者,编程记者,前端之虎陈随易。

我会在这里分享代码技术,编程资讯,行业热点等内容,欢迎关注。

一键三连 (点赞评论转发),可以给我提供曝光,带来一份早餐收入,谢谢大家~~


Meilisearch 是一个开源的搜索引擎,以其简单易用和高性能著称。2024年6月9日,Meilisearch 发布了 v1.15.0 版本,带来了两个重要的新特性,让搜索功能更加精准和灵活。

一、数字搜索更精准:禁用数字的错字容忍

什么是错字容忍?

在搜索引擎中,“错字容忍” (Typo Tolerance) 是一个很贴心的功能。比如你搜索 “appel”,搜索引擎会智能地帮你找到 “apple” 相关的结果。这是因为搜索引擎认为你可能是打错了字。

为什么要禁用数字的错字容忍?

但是,当涉及到数字时,这个功能可能会带来困扰。想象一下这些场景:

  • 你搜索 “2024年报”,结果出现了 “2025年报” 和 “2004年报”
  • 你查找订单号 “12345”,却看到了 “12346”、“12344” 等相似订单
  • 你搜索产品型号 “iPhone 15”,结果混入了 “iPhone 14” 和 “iPhone 16”

如何使用这个新功能?

bash
curl -X POST 'http://localhost:7700/indexes/products/settings' \
  -H 'Content-Type: application/json' \
  -d '{
    "typoTolerance": {
      "disableOnNumbers": true
    }
  }'

启用这个设置后:

  • ✅ 搜索 “2024” 只会返回包含 “2024” 的结果
  • ✅ 搜索 “iPhone 15” 不会再看到其他型号
  • ✅ 订单号、产品编号等数字搜索更加精确

额外好处:禁用数字错字容忍还能提升索引性能,让你的搜索引擎运行得更快!

二、字符串也能比大小:词典序过滤

什么是词典序?

词典序就是按照字典的排列顺序。比如:

  • 数字:“1” < “2” < “10” < “20”
  • 字母:“a” < “b” < “c”
  • 日期字符串:“2024-01” < “2024-02” < “2024-12”

实际应用场景

这个功能特别适合处理人类可读的日期格式:

bash
# 查找2024年6月之后发布的电影
curl -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": "release_date >= '2024-06'"
  }'

# 查找特定时间段的订单
curl -X POST 'http://localhost:7700/indexes/orders/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": "created_at >= '2024-01-01' AND created_at <= '2024-12-31'"
  }'

更多应用示例

  1. 版本号过滤

    json
    {
        "filter": "version >= 'v1.10.0'"
    }
  2. 产品型号筛选

    json
    {
        "filter": "model >= 'A100' AND model <= 'A999'"
    }
  3. 时间戳过滤

    json
    {
        "filter": "timestamp >= '2024-06-01T00:00:00'"
    }

三、其他改进亮点

1。版本回滚支持

现在可以在升级出现问题时回滚到之前的版本,大大降低了升级风险。

2。SSL 证书支持增强

支持使用 EC (椭圆曲线) 私钥作为 SSL 证书,提供更多安全选项。

3。性能优化

  • 快照生成速度提升 (通过 CLI 选项停止压缩)
  • 新增批处理策略字段,方便监控和优化

4。更好的错误提示

  • 改进了过滤器相关的错误消息
  • 向量维度不匹配时的错误提示更清晰
  • 网络 URL 验证错误格式更统一

5。Prometheus 监控增强

暴露了任务队列状态大小指标,便于监控系统运行状况。

四、Bug 修复

  • 修复了 _matchesPosition 长度计算问题,改善客户端裁剪功能
  • 修复了 _geo 排序规则的问题
  • 修复了搜索前缀超过 65k 匹配时可能出现的崩溃
  • 修复了 maxTotalHits 设置为 0 的问题
  • 修复了文档模板使用数组过滤器的问题

总结

Meilisearch v1.15 虽然看起来只是一个小版本更新,但它带来的两个核心功能都非常实用:

  1. 数字错字容忍开关让数字搜索更精准,特别适合电商、订单系统等需要精确数字匹配的场景
  2. 字符串比较过滤让时间范围筛选变得简单直观,不再需要复杂的时间戳转换

这些改进充分体现了 Meilisearch 团队对用户需求的重视,让搜索引擎在保持易用性的同时,提供了更多精细化的控制选项。

如果你正在使用 Meilisearch,建议尽快升级到 v1.15,享受这些新特性带来的便利。如果你还没有尝试过 Meilisearch,不妨趁此机会体验一下这个简单而强大的搜索引擎!

参考资源

何以解忧,唯有代码。不忘初心,方得始终。