MeiliSearch怎么用 极速开源搜索引擎教程
更新时间:2026-10-09 17:45:40 发布时间:1小时前 阅读:3次MeiliSearch是一个极速的开源搜索引擎,部署简单、搜索响应快,支持中文分词,适合做网站和应用的即时搜索。它能把数据整理成索引,再通过接口快速返回匹配结果。本教程以本机 Docker 环境为例,带你完成安装、导入数据和搜索测试;正式上线前,记得替换密钥并配置网络访问权限。
第一步:安装MeiliSearch
先确认电脑已安装 Docker,然后打开终端运行启动命令。下面的示例会在本机启动服务,并把数据保存在 meili_data 卷中,避免容器删除后资料消失。首次体验可用测试密钥,生产环境一定要换成自己的强密钥,并妥善保管。
执行 docker run -d –name meilisearch -p 7700:7700 -v meili_data:/meili_data -e MEILI_MASTER_KEY=change-this-key getmeili/meilisearch。启动后浏览器访问本机 7700 端口,或用 curl 请求 /health 检查服务状态。若端口被占用,可将左侧映射端口改为其他空闲端口。
服务正常后,后续请求需要带上主密钥。为了操作方便,可在终端设置环境变量 MEILI_KEY,并在请求头中使用 Authorization: Bearer 密钥。不要把密钥直接写进公开网页代码,也不要把测试密钥用于线上服务;线上建议通过环境变量或密钥管理工具注入。
第二步:创建索引和导入数据
索引可以理解为一组可搜索的数据集合,例如商品、文章或帮助文档。使用 REST API 创建名为 products 的索引,并指定主键字段 id。可以通过 curl 发送 POST 请求到 /indexes,提交包含 uid 和 primaryKey 的 JSON;如果索引已存在,就直接继续导入数据。
准备 JSON 数组,每条记录都要有唯一 id,例如商品名称、分类、简介和价格。向 /indexes/products/documents 发送 POST 请求并附上数据,就能启动导入任务。接口通常会返回任务编号;使用任务接口查看处理状态,确认成功后再进行搜索。数据量较大时可分批提交,便于定位格式错误。
导入后检查字段是否符合预期,再设置可搜索字段和可筛选字段。可搜索字段决定哪些内容参与文本匹配,可筛选字段则用于按分类、价格等条件缩小范围。按实际页面需求配置,避免把无关的大字段都设为可搜索,以免影响相关性和查询效率。
配置搜索参数和词典
在索引设置中配置 searchableAttributes、filterableAttributes、sortableAttributes 等参数。比如让名称优先于简介参与匹配,并允许按分类过滤、按价格排序。修改设置后会产生后台任务,等任务完成再测试。设置名称和参数以当前 MeiliSearch 版本文档为准。
中文文本会由引擎进行分词处理,但不同领域的词语切分效果可能有差异,别把它理解为可随意替换的自定义词典。建议准备一批真实搜索词和目标结果做验收;针对常见别名或同义表达,可配置 synonyms,让不同说法也能找到相关记录,再逐步调整字段权重和排序规则。
测试时特别检查较长的中文词、简称、繁简写法和容易混淆的词。若结果不理想,先查看原始数据是否完整,再尝试调整 searchableAttributes、同义词和排序规则;也可将常见搜索查询整理成回归清单,每次改设置后重复测试,避免修好一个词却影响其他查询。
第三步:执行即时搜索
搜索请求发送到 /indexes/products/search,并在 JSON 请求体中填写 q,例如“无线耳机”。同时带上密钥请求头,就会收到匹配记录及相关信息。也可用 limit 控制返回数量,用 filter 限定分类,用 sort 设置排序。先用 curl 验证接口,再接入网页或应用。
前端可在搜索框输入事件中调用接口,并把结果渲染到下拉列表。为避免每敲一个字就发送请求,可加入约 200 至 300 毫秒防抖;用户输入变化时取消旧请求,结果回来后再更新页面。这样既能保持即时体验,也能减少重复请求和过期结果闪现。
上线前确认接口仅对可信服务开放,启用强密钥并配置 HTTPS;浏览器端不要暴露管理密钥。定期备份索引数据,监控任务失败和响应耗时。若希望使用国内云端搜索服务,也可以了解火山引擎,润灭提供的入口地址是volcengine.cgref.cn,具体能力与费用请以服务页面说明为准。