下面为您详细介绍如何在Linux(以Ubuntu为例)系统下安装Meilisearch、插入数据,并进行简单的搜索操作。
一、安装Meilisearch
- 更新系统及安装依赖:
bash
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install curl unzip -y
这一步确保系统环境最新,并安装了curl等工具用于下载Meilisearch。
- 下载Meilisearch最新二进制文件: 使用官方安装脚本(推荐):
bash
curl -L https://install.meilisearch.com | sh
该命令会自动下载Meilisearch二进制文件到当前目录并赋予执行权限。
- 将二进制文件移动到系统PATH目录(全局可执行):
bash
sudo mv meilisearch /usr/local/bin/
- 启动Meilisearch服务器:
bash
meilisearch --master-key="aSampleMasterKey"
master-key用于API安全认证,可换成您自定义的16位以上字符串。服务器默认监听7700端口。
- (可选)将Meilisearch设置成系统服务,以便随系统启动:
创建/etc/systemd/system/meilisearch.service
文件,内容示例:
ini
[Unit]
Description=MeiliSearch Service
After=network.target
[Service]
Type=simple
User=your_username
ExecStart=/usr/local/bin/meilisearch --http-addr 0.0.0.0:7700 --master-key="aSampleMasterKey"
Restart=on-failure
[Install]
WantedBy=multi-user.target
替换 your_username
为您的Linux用户名。
启用服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable meilisearch.service
sudo systemctl start meilisearch.service
通过命令systemctl status meilisearch.service
确认运行状态。
此时,Meilisearch服务器已经在7700端口运行.[1][2][3]
二、插入数据示例
Meilisearch使用JSON格式文档。假设我们定义一个索引名为"movies",每条文档包含id
、title
和year
字段。
使用cURL插入示例数据:
bash
curl -X POST 'http://127.0.0.1:7700/indexes/movies/documents' \
-H 'Content-Type: application/json' \
--data-binary '[
{ "id": 1, "title": "Inception", "year": 2010 },
{ "id": 2, "title": "Interstellar", "year": 2014 }
]'
注意每个文档必须包含唯一的id
字段作为主键。
如果启用了master-key,需加上X-Meili-API-Key
头部:
bash
-H 'X-Meili-API-Key: aSampleMasterKey'
这样,数据就被插入到"movies"索引中了.[4][5][6]
三、进行简单检索
插入文档后,可以通过HTTP API进行搜索。以下是一个用cURL发送简单查询的例子,搜索包含字词"Inception"的文档:
bash
curl -X POST 'http://127.0.0.1:7700/indexes/movies/search' \
-H 'Content-Type: application/json' \
--data '{ "q": "Inception" }'
如果启用了master-key,同样要加上API密钥头。
搜索返回的数据格式中包含hits
数组,即匹配到的文档列表,可以通过这个数据进行展示。
用JavaScript客户端示例:
javascript
const { MeiliSearch } = require('meilisearch');
const client = new MeiliSearch({
host: 'http://127.0.0.1:7700',
apiKey: 'aSampleMasterKey'
});
async function searchMovies() {
const index = client.index('movies');
const results = await index.search('Inception', { limit: 10 });
console.log(results.hits);
}
searchMovies();
这个例子中初始化了客户端,选择了"movies"索引并进行搜索,返回匹配结果.[7][8][3]
综上:
步骤 | 内容 | 命令或代码示例 |
---|---|---|
1 | 安装Meilisearch | `curl -L https://install.meilisearch.com |
2 | 移动二进制到PATH | sudo mv meilisearch /usr/local/bin/ |
3 | 启动服务 (含master-key) | meilisearch --master-key="aSampleMasterKey" |
4 | 插入数据(JSON文档) | curl -X POST http://127.0.0.1:7700/indexes/movies/documents + JSON数据 |
5 | 执行搜索请求 | curl -X POST http://127.0.0.1:7700/indexes/movies/search + 查询JSON |
6 | (可选)用JavaScript客户端调用 | 见上述JavaScript代码示例 |
此流程是Meilisearch在Linux上最简单且完整的安装、插入数据及检索的示范。如需更高级的索引配置、过滤和安全认证,可继续深入官方文档学习.