Meilisearch 终极指南:轻量级搜索引擎如何替代 Elasticsearch

日期: 2025-10-21 06:08:46|浏览: 7|编号: 159068

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

一、简介:为什么选择 ?

它是一个公开源代码的简约型检索系统,在某个平台上收获了超过五万颗星标,与同类产品相比,展现出几个突出的长处:

下面是使用 实现即时搜索的效果演示:

二、快速安装部署 部署方案

# 1. 拉取最新镜像
获取名为getmeili的meilisearch版本v1.13镜像,采用pull指令进行操作
# 2. 运行容器(开发环境)
启动一个容器,将端口7700映射到7700,命名为meilisearch
设置环境变量 MEILI_ENV 为开发模式
将虚拟目录/mydata/meiliData映射到宿主机的/meili_data目录下
  -d getmeili/meilisearch:v1.13
# 3. 验证安装
使用命令行工具,访问本地服务器端口七千七百的路径,进行健康检查请求

安排妥当之后,输入网址 http://你的服务器IP:7700 就能进入操作面板:

三、核心概念与操作1. 索引管理(类似数据库表)

创建并导入示例数据:

# 下载官方示例数据集
使用专用工具访问指定网址,下载名为movies.json的文件,该网址为meilisearch官方文档中关于自托管版本入门指南的部分,包含了相关示例数据
# 导入数据到 movies 索引
使用专用工具向指定网址发起数据提交请求,目标地址为本地服务器七千七百端口上的电影索引文档接口,并强调以ID作为主键进行数据关联,各项操作均采用安全加密传输方式,整个过程通过命令行界面执行,具体指令如下,该指令包含多个必要参数,包括请求方法,目标资源路径,以及数据标识规则,结尾使用标准符号表示指令结束
设置内容类型为JSON格式
  --data-binary @movies.json

导入成功后,即可在管理界面查看数据:

2. 索引设置优化

配置可排序和可筛选字段:

使用修正方法,针对网址 http://localhost:7700/indexes/movies/settings 进行操作,采用修补指令,发送请求,
  -H 'Content-Type: application/json' \
  -d '{
排序属性包括标题和发行日期
筛选条件包括类型和发行时间
  }'

查询当前配置:

使用命令行工具向指定网址发起请求,请求类型为获取,目标地址为本地服务器七千七百端口上的电影索引设置信息,具体路径为索引目录下的设置文件

3. 文档操作(CRUD)

添加新文档:

发送一个请求到网址 http://localhost:7700/indexes/movies/documents,采用 POST 方法进行操作
  -H 'Content-Type: application/json' \
  -d '{
    "id": 999,
    "title": "变形金刚测试",
    "overview": "这是一个测试电影描述...",
    "genres": ["动作", "科幻"],
    "release_date": 1640995200
  }'

查询文档:

使用命令行工具,发起一个获取请求,目标地址是本地服务器七千七百端口,路径为索引目录下电影文档的九百九十九编号,请求方式为查询

四、高级搜索功能1. 基础搜索

使用专用工具向指定网址发起请求,该网址为本地服务器上的特定端口和资源路径,请求类型为发送数据,目标资源为电影搜索功能
  -H 'Content-Type: application/json' \
  -d '{ "q": "变形金刚" }'

2. 分页搜索

curl -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "q": "动作",
    "offset": 0,
    "limit": 5
  }'

3. 排序搜索

curl -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "q": "科幻",
    "sort": ["release_date:desc"]
  }'

4. 条件筛选搜索

curl -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "q": "电影",
类型等于动作或者类型等于冒险
  }'

五、客户端集成示例 客户端

引入名为MeiliSearch的库,其来源于meilisearch这个包
新建一个MeiliSearch客户端实例,参数为配置对象,
服务地址为本地机,端口是七千七百整,具体链接形式如下:http://localhost:7700。
})
// 搜索示例
进行电影检索的函数,需要传入查询参数,并采用异步方式执行,其名称为searchMovies
查询结果由客户端索引电影后获取,依据查询内容执行,并附带相关配置参数
    limit: 10,
    offset: 0
  })
  return results.hits
}

客户端

由我创建了一个客户端实例
客户端对象赋值为一个实例,其构造函数参数为网址,网址为http://localhost:7700
# 添加文档
def add_movie(movie_data):
索引名称为电影,已通过客户端创建
返回索引添加文档集合包含电影数据

六、提升效率方法建议采用成批处理方式传输资料,以此降低交互频次科学分配处理单元:依据信息容量配置处理单元数内存管理措施:合理设定内存使用上限,防止内存耗尽数据保护机制:借助即时镜像技术周期性保存资料七、概述

作为 的轻量级替代方案,具有以下优势:

安装轻松,直接点击按钮,几分钟就能开始操作;操作方便,提供接口调用,不需要进行繁琐的设置;运行高效,查询速度极快,能够在一秒之内返回结果;消耗较低,与ES相比,对设备的要求显著减少;作用强大,能够实现排序、筛选、翻页等各种复杂操作

适用场景:

对于多数中小型软件,完全可以胜任检索任务,是替代它的理想方案。

提醒:请联系我时一定说明是从夜讯箱包皮具网上看到的!