Meilisearch 安装和使用教程

news2024/11/19 1:45:47

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

那么,有没有一种搜索引擎能够兼顾速度、准确性、易用性和可扩展性呢?今天给大家推荐一款强大的开源搜索引擎 - 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 的优势,我们可以将其与市面上的其他主流搜索解决方案进行对比:

特性MeilisearchElasticsearchAlgolia
响应速度<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 的安装和使用方法,可参考我们之前写的文章:Flarum 安装和使用教程

将 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 基本上都能满足你的需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1882290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享值得推荐的6大磁力搜索器平台,亲测有效!

昨天晚上&#xff0c;隔壁出租屋的小美私信阿星&#xff0c;问哪里能下载到有趣的资源&#xff0c;比如漫画、影音、学习资料等等。 这直接问到了阿星的强项了&#xff01;其实网络上&#xff0c;高手和小白之间&#xff0c;只差一个搜索引擎。 今天阿星想和大家分享几款好用…

常用图片处理操作

静态图片文件转base64 import base64 with open(1.png, rb) as f:source f.read() base64_img base64.b64encode(source)base64转静态图片文件 imgdata base64.b64decode(base64_img)# 将图片保存为文件 with open("new.png", wb) as f:f.write(imgdata)PS:这里…

IT运维管理与运营管理的创新与实践

IT运维管理与运营管理的创新与实践 在信息化飞速发展的今天&#xff0c;IT运维管理与运营管理已成为企业保障业务连续性和提升运营效率的关键环节。随着数字化转型的深入&#xff0c;企业对IT运维管理的要求不断提高。本文结合《IT运维管理与运营管理》文档的内容&#xff0c;…

海南云亿商务咨询有限公司引领抖音电商新纪元

在数字化浪潮汹涌的今天&#xff0c;电商行业迎来了前所未有的发展机遇。作为电商服务领域的佼佼者&#xff0c;海南云亿商务咨询有限公司凭借其专业的团队和丰富的经验&#xff0c;专注于抖音电商服务&#xff0c;助力企业快速布局市场&#xff0c;实现销售增长和品牌提升。 …

基于x86+FPGA+AI轴承缺陷视觉检测系统,摇枕弹簧智能检测系统

一、承缺陷视觉检测系统 应用场景 轴类零件自动检测设备&#xff0c;集光、机、软件、硬件&#xff0c;智能图像处理等先进技术于一体&#xff0c;利用轮廓特征匹配&#xff0c;目标与定位&#xff0c;区域选取&#xff0c;边缘提取&#xff0c;模糊运算等算法实现人工智能高…

运算放大器重要参数详解

运算放大器是一种用于放大电压并实现信号处理和放大的电子设备。以下是运算放大器的一些重要参数及其详解: 增益(Gain): 定义:增益是运算放大器输出电压与输入电压之比,表示运算放大器在输入信号上的放大倍数。重要性:增益决定了信号的放大程度,是运算放大器的基本功能…

工程师这几招降低电机EMI的方法,提高系统电磁兼容性能

通过在电机端子之间放置陶瓷电容器、工模滤波器或BDL滤波器均可抑制差模和共模噪声&#xff0c;以提高系统的EMC性能。工程师在本文详细介绍这几种降低电机EMI的方法。 EMC和EMI背景 电磁干扰(EMI)是系统上的电磁噪声的辐射或感应。与大多数电磁电路组件一样&#xff0c;直流…

用易查分下发《致家长一封信》,支持在线手写签名,一键导出PDF!

暑假来临之际&#xff0c;学校通常需要下发致家长信&#xff0c;以正式、书面的形式向家长传达重要的通知或建议。传统的发放方式如家长签字后学生将回执单上交&#xff0c;容易存在丢失、遗忘的问题。 那么如何更高效、便捷、安全地将致家长一封信送达给每位家长呢&#xff1f…

3-数据提取方法1(json)(6节课学会爬虫)

3-数据提取方法1&#xff08;json&#xff09;&#xff08;6节课学会爬虫&#xff09; 1&#xff0c;Json2&#xff0c;哪里会返回json的数据&#xff08;值得尝试的操作&#xff09;3&#xff0c;Json字符串转换成字典或python类型进行数据提取&#xff08;1&#xff09;Json.…

使用热力图表示联邦学习场景中的客户端数据分布

用于生成热力图&#xff0c;记录过程&#xff0c;方便之后直接使用。 使用场景&#xff1a;联邦学习中显示客户端数据分布&#xff0c;或者显示数据分布的各类其他场景 文章目录 一、代码hot.py使用方法 二、参数解释三、样图关键词 一、代码 写这段代码时主要考虑联邦学习中显…

短视频抓取:成都柏煜文化传媒有限公司

短视频抓取&#xff1a;技术挑战、法律边界与未来趋势 随着移动互联网的迅猛发展&#xff0c;短视频平台如雨后春笋般涌现&#xff0c;成为现代人生活娱乐的重要组成部分。然而&#xff0c;在海量短视频内容中&#xff0c;如何高效、准确地抓取目标视频&#xff0c;成为了一个…

JUC工具类: Semaphore详解

Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量&#xff0c;它允许n个任务同时访问某个资源&#xff0c;可以将信号量看做是在向外分发使用资源的许可证&#xff0c;只有成功获取许可证&#xff0c;才能使用资源。立刀旁 目录 # 带着BAT大厂…

媒体宣发套餐的概述及推广方法-华媒舍

在今天的数字化时代&#xff0c;对于产品和服务的宣传已经变得不可或缺。媒体宣发套餐作为一种高效的宣传方式&#xff0c;在帮助企业塑造品牌形象、扩大影响力方面扮演着重要角色。本文将揭秘媒体宣发套餐&#xff0c;为您呈现一条通往成功的路。 1. 媒体宣发套餐的概述 媒体…

昇思25天学习打卡营第5天|网络与模型相关要素探讨

目录 从 MindSpore 模块中导入nn和ops 定义模型类 模型层 nn.Flatten nn.Dense nn.ReLU nn.SequentialCell nn.Softmax 模型参数 从 MindSpore 模块中导入nn和ops 将 MindSpore 整个模块引入到当前的 Python 脚本里&#xff0c;方便后续运用 MindSpore 所提供的各类功能…

森林防火气象站:守护森林安全的科技利器

在广袤无垠的森林中&#xff0c;火灾一直是威胁森林生态安全的重要因素。为了有效预防和控制森林火灾&#xff0c;科学家们不断研发新技术&#xff0c;而森林防火气象站正是这一领域的重要成果之一。其中&#xff0c;森林防火气象站凭借其强大的功能和独特的设计&#xff0c;在…

餐厅在线点餐小程序源码系统可外卖配送 带完整的安装代码包以及搭建部署教程

系统概述 在当今数字化时代&#xff0c;餐厅在线点餐小程序已成为餐饮行业的重要工具。它不仅为消费者提供了便捷的点餐体验&#xff0c;也为餐厅提高了运营效率和服务质量。小编给大家分享一款餐厅在线点餐小程序源码系统&#xff0c;该系统不仅支持在线点餐&#xff0c;还具…

Python逻辑控制语句 之 循环语句--while循环

1.while 的介绍 让指定的代码 重复 的执行。 应用场景&#xff1a; while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复执行 2.while 的语法 初始条件设置 # 通常是重复执行的 计数器 while 判断条件&#xff1a; # 判断计数器是否达到目标次数 条件…

博途PLC轴工艺对象随动误差监视功能

S7-1200PLC和V90总线伺服通过工艺对象实现定位控制时在组态工艺对象里有这样的随动误差监视功能介绍,关于这个功能,今天我们解读下,工艺对象组态编程可以参考下面文章链接: S7-1200PLC和V90总线伺服通过工艺对象实现定位控制(标准报文3应用)_v90工艺对象3号报文-CSDN博客文…

放弃吧!你招不到优秀AI产品经理;程序员优雅做副业指南;一人企业系统方法论(6万字);大模型训练10条黄金法则 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; 1. 5亿条国内招聘信息&#xff0c;洞察 1639 种人类职业被AI替代的风险 2023年&#xff0c;OpenAI 发布了一篇论文 GPTs are GPTs: An Early Look at…

Tektronix泰克 AWG70001A 任意波形发生器

Tektronix泰克 AWG70001A 任意波形发生器 AWG70000A 系列任意波形发生器 (AWG) 在采样率、信号保真度和波形内存方面代表着尖端水平&#xff0c;特别适合复杂器件、系统和实验的设计、测试和操作。由于高达 50 GS/s 采样率和 10 位垂直分辨率&#xff0c;它提供了优秀的信号激…