如今搜索功能已成为几乎所有应用不可或缺的一部分。无论是电商平台、内容管理系统,还是企业内部知识库,用户都期待能够快速、准确地找到他们需要的信息。然而,传统的搜索解决方案往往面临着诸多挑战:响应速度慢、相关性差、难以适应大规模数据、缺乏灵活性等。这些问题不仅影响用户体验,还可能导致用户流失,最终影响业务增长。

那么,有没有一种搜索引擎能够兼顾速度、准确性、易用性和可扩展性呢?今天给大家推荐一款强大的开源搜索引擎 - Meilisearch。

Meilisearch 简介

Meilisearch 是一个强大的开源搜索引擎,使用 Rust 语言编写,提供了闪电般快速的全文搜索功能,并且易于使用和集成。Meilisearch 旨在为开发者和最终用户提供一个即时且相关性优先的搜索体验。

自2018年首次发布以来,Meilisearch 凭借其简单易用的特性和卓越的性能,迅速在开源社区中脱颖而出。

一个优秀的搜索引擎不仅要满足开发者的需求,更要为终端用户提供卓越的体验。Meilisearch 的设计始终围绕着以下核心理念:

  1. 速度至上:在任何规模的数据集上,都能在 50 毫秒内返回结果。
  2. 相关性优先:通过智能排序算法,确保最相关的结果总是排在前面。
  3. 开发者友好:提供直观的 API 和丰富的文档,大大降低了集成和使用的门槛。
  4. 高度可定制:灵活的配置选项,允许开发者根据具体需求调整搜索行为。

目前 Meilisearch 在 GitHub 上已经获得了超过 40000 颗星。

Meilisearch 的杀手级特性

Meilisearch 提供了丰富多样的搜索功能,可以满足从个人项目到大型企业应用的各种需求。核心功能如下:

搜索性能

  • 闪电般的速度:无论数据集大小如何,都能在 50 毫秒内返回结果。
  • 即时搜索:支持 “搜索即输入” (Search-as-you-type) 功能,提供实时反馈。
  • 拼写容错:智能处理拼写错误,即使查询中存在错误也能返回相关结果。

相关性优化

  • 自定义排序:允许根据业务需求自定义搜索结果的排序规则。
  • 分面搜索:支持多维度的结果过滤和导航。
  • 同义词管理:可以设置同义词,提高搜索的灵活性。

多语言支持

  • 多语言优化:针对多种语言进行了优化,包括中文、日文等非拉丁语系。
  • 停用词处理:可配置停用词列表,忽略对搜索结果影响不大的常见词。

高级功能

  • 地理位置搜索:支持基于地理位置的搜索和排序。
  • 多租户支持:通过租户令牌实现数据隔离和访问控制。
  • 高亮显示:在搜索结果中高亮显示匹配的文本。
  • 文档管理:支持添加、更新和删除索引中的文档。

开发者友好

  • RESTful API:提供简洁明了的 API,易于集成。
  • 多语言 SDK:官方提供多种编程语言的 SDK。
  • 文档详细:提供全面的文档和示例。
  • 可自托管:支持在自己的基础设施上部署和管理。

Meilisearch vs. 其他搜索解决方案

为了更直观地展示 Meilisearch 的优势,我们可以将其与市面上的其他主流搜索解决方案进行对比:

特性 Meilisearch Elasticsearch Algolia
响应速度 <50ms 因环境和配置而异,通常>100ms <100ms
易用性
自动错误纠正 需配置
多语言支持 优秀 良好 优秀
地理位置搜索 支持 支持 支持
开源 是(部分功能闭源)
定价 免费(自托管) 免费(自托管),付费云服务 付费 SaaS

虽然 Elasticsearch 在功能全面性和生态系统方面略胜一筹,Algolia 则在云服务和开箱即用体验上有优势,但 Meilisearch 在速度、易用性和开源友好度上独树一帜。特别是对于中小型项目和希望完全控制搜索基础设施的团队来说,Meilisearch 提供了一个完美的平衡点。

Meilisearch 的安装使用

Meilisearch 的安装和使用相对简单,提供了多种安装方式以适应不同的环境和需求。

对于没有技术背景的同学而言,你也不用担心安装问题,Sealos 应用商店提供了一键部署的应用模板,点一下鼠标即可完成部署,非常丝滑。

如果你想快速部署一个 Meilisearch,又不想陷入繁琐的安装和配置过程,可以试试 Sealos。

直接打开 Meilisearch 应用模板,然后点击右上角的 “去 Sealos 部署”。

如果您是第一次使用 Sealos,则需要注册登录 Sealos 公有云账号,登录之后会立即跳转到模板的部署页面。

这里有两个关键的环境变量需要特别注意一下,正确配置这些变量可以确保您的 Meilisearch 的安全和性能。

  1. MEILI_ENV:用于配置实例的环境,只能是 productiondevelopment

    production 模式:

    • 禁用了搜索预览界面。

    development 模式:

    • 启用了搜索预览功能。
  2. MEILI_MASTER_KEY:用于设置 Meilisearch 的主密钥,它会自动保护除 GET /health 之外的所有路由。只有通过 API 密钥才能访问其他端点,包括搜索预览界面。

    在 production 模式下:

    • 提供主密钥是强制性的。
    • 如果没有提供主密钥或密钥长度小于 16 字节,Meilisearch 将抛出错误并拒绝启动。

    在 development 模式下:

    • 提供主密钥是可选的。
    • 如果没有提供主密钥,所有路由将不受保护且可公开访问。

无论在哪种模式下,如果你没有提供主密钥或提供的密钥长度小于 16 字节,Meilisearch 都会建议你使用一个自动生成的主密钥。

总结一下:如果是 production 模式,则必须要提供主密钥;如果是 development 模式,则可以不提供主密钥。

密钥的生成非常简单,直接在 Linux 或者 macOS 终端里执行以下命令即可生成一个随机密钥:

openssl rand -base64 48

填好参数之后,点击右上角的 “部署应用” 开始部署。

部署完成后,直接点击应用的 “详情” 进入该应用的详情页面。

等待应用状态变成 running 之后,直接点击外网地址便可打开 Meilisearch 的搜索预览界面。

打开之后是这个样子的,输入你设置的密钥,就可以访问了。

除此之外,还有另外一种打开方式,先刷新 Sealos 桌面 (也就是在 bja.sealos.run 界面刷新浏览器),然后你就会发现 Sealos 桌面多了个图标:

直接点击这个图标就可以打开 Meilisearch 的搜索预览界面了。

是不是有点似曾相识?没错,很像 Windows 的快捷方式!

单机操作系统可以这么玩,Sealos 云操作系统当然也可以这么玩。

Meilisearch 的使用

Meilisearch 作为一个高性能、易用的搜索引擎,可以应用于多种场景,比如电子商务网站、内容管理系统 (CMS)、知识库和文档系统、媒体流平台,以及论坛和社区网站 (如 Flarum) 等等这些都需要用到搜索功能。

以 Flarum 论坛为例,给大家演示一下如何接入 Meilisearch 实现搜索能力的飞跃。

Meilisearch 可以显著提升 Flarum 的搜索功能,为用户提供更好的体验,包括很多开箱即用的功能,比如错字容忍、过滤器和同义词,最重要的是:支持中文搜索。

关于 Flarum 的安装和使用方法,可参考我们之前写的文章

aaa

将 Meilisearch 接入 Flarum 非常简单,只需要以下几步:

1. 安装 Meilisearch SDK

在 Flarum 应用详情界面,点击右下角的终端按钮:

在打开的终端中执行以下命令安装 Meilisearch SDK:

extension require meilisearch/meilisearch-php

2. 安装 Scout Search 扩展

和上面一样,在 Flarum 容器终端中执行以下命令安装 Scout Search 扩展:

extension require clarkwinkelmann/flarum-ext-scout

3. 启用 Scout 扩展

在 Flarum 管理后台中启用 Scout 扩展,并选择 Meilisearch 作为搜索引擎,index 名称可写可不写。

下面还需要配置 Meilisearch 的 URL 和密钥。

如果你的 Meilisearch 和 Flarum 部署在同一个 Sealos 可用区,那么可以直接使用 Meilisearch 的内网地址,进入 Meilisearch 的应用详情页面,点击内网地址便可复制 Meilisearch 的内网地址,然后作为上面 Scout 插件 Meilisearch Host 的值粘贴进去即可。

4. 增加 Meilisearch 内存

Sealos 中部署的 Meilisearch 默认只给了 128M 内存,如果要接入 Flarum,这个内存是不够用的,需要调整到 1G 才够用。操作方法如下:

进入 Meilisearch 的应用详情页面,点击右上角的 “变更”:

将内存调整到 1G,然后点击右上角的 “变更” 即可。

5. 导入 Meilisearch 索引

使用以下命令将现有数据导入 Meilisearch 索引:

php flarum scout:import-all

下面这种结果就是导入成功了:

最后来测试一下中文搜索功能:

完美!

总结

AI 时代,高效的搜索功能已经成为应用成功的关键因素之一。Meilisearch 凭借其卓越的性能、直观的 API 和丰富的功能,为开发者提供了一个强大而灵活的搜索解决方案。无论你是想构建一个小型博客还是大规模的电商平台,Meilisearch 基本上都能满足你的需求。

Meilisearch 安装和使用教程的更多相关文章

  1. CentOS7下自定义目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用自定义目录安装mono+jexus教程,使用默认目录请查看使用默认目录安装 ...

  2. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)

    AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...

  3. CentOS7下默认目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用默认目录安装mono+jexus教程,使用自定义目录请查看使用自定义目录安 ...

  4. << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档

    developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...

  5. webpack安装配置使用教程详解

    webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...

  6. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者

    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...

  7. 安装WordPress详细教程指南

    最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...

  8. 纯windows下制作变色龙引导安装U盘教程

    原创教程:纯windows下制作变色龙引导安装U盘教程 支持Mavericks和Yosemite 支持白苹果 目标:windows下制作带 Chamelon变色龙引导的黑苹果安装U盘,支持PC机引导安 ...

  9. 最详细在Windows安装Xamarin.iOS教程

    最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...

  10. 【转】Android Studio安装配置学习教程指南 下载和安装--不错

    背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Goo ...

随机推荐

  1. Go-Zero技能提升:深度探究goctl的妙用,轻松应对微服务开发挑战!(三)

    前言 有位同学在群里说:"Go-Zero官方文档太简洁了,对小白有点不友好.好奇你们是怎么学习的?项目是怎么封装的?有什么提高开发效率的技巧吗?". 来来来,这期内容给你安排上,先 ...

  2. 欧几里得算法求最大公因数gcd原理证明

    要证明欧几里得算法原理,首先需要证明下面两个定理(其中a,b都是整数): 1 如果c可以整除a,同时c也可以整除b,那么c就可以整除au + bv(u,v是任意的整数). 这个定理的证明很简单,$\f ...

  3. Ubuntu空间不足,如何扩容

    扩容多少看自己需求 点击确定然后打开虚拟机 使用工具的第一种方法 使用Ubuntu自带的disk,直接搜软件disk,点击进去 选择自己要扩容的磁盘 点击设置,选择resize 你要扩容到多少就拖动到 ...

  4. springboot中quartz定时器的postgresql建表语句

    建表语句如下: DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; DRO ...

  5. ShareConnect即将寿终正寝 Splashtop远程桌面会是最好的替代品

    大家好,我是没有感情的翻译机器人,又见面了.同类产品ShareConnect即将退市,官方大大搞了个新闻稿.君叫臣翻,臣不得不翻.------没有感情的分割线------ShareConnect的使用 ...

  6. 内网渗透 Metasploit(MSF)基础使用

    免责申明 以下内容仅供学习使用,非法使用造成的问题由使用人承担 攻击思路 漏洞探测(信息收集) <- fsacn,namp | 漏洞利用 <- 工具(msf等) | 获取服务器权限 MSF ...

  7. 【漏洞复现】CVE-2023-27372 RCE漏洞

    产品介绍 SPIP是一个互联网发布系统,其中非常重视协作工作,多语言环境和Web作者的易用性.它是自由软件,在GNU/GPL许可证下分发.这意味着它可以用于任何互联网站点,无论是个人的还是机构的,非营 ...

  8. 【c++】求解八皇后问题

    为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法.一共92个解 解决思路:一层层回溯,采用深度优先的递归算法. 动态分配的数 ...

  9. 【C#】字符串按条件替换关键字

    private string MyReplace(string json, string keyWord, string newWord, Func<string, string, bool&g ...

  10. FFmpeg开发笔记(二十三)使用OBS Studio开启RTMP直播推流

    ​OBS是一个开源的直播录制软件,英文全称叫做Open Broadcaster Software,广泛用于视频录制.实时直播等领域.OBS不但开源,而且跨平台,兼容Windows.Mac OS.Lin ...