全文搜索
全文搜索功能允许用户根据文件内容进行检索。启用后,Cloudreve 在文件上传或更新时通过 Apache Tika 提取文件内容,并将其发送至 Meilisearch 进行索引。用户可在搜索时直接匹配文档中的文字内容,快速定位目标文件。
前置条件
全文搜索依赖以下两个外部服务,请在启用前完成部署:
| 服务 | 用途 | 默认端口 |
|---|---|---|
| Apache Tika | 从文件中提取文本内容 | 9998 |
| Meilisearch | 对提取的文本内容进行索引 | 7700 |
部署 Apache Tika Server
Apache Tika 是一个开源的文件内容提取工具,支持从常见文档格式中提取文字内容用于索引。
通过 Docker 启动 Apache Tika Server:
docker run -d --name tika -p 9998:9998 apache/tika:latest完整版镜像
如果需要完整的 Tika 处理能力(包括 GDAL 和 Tesseract OCR),可使用完整版镜像:
docker run -d --name tika -p 9998:9998 apache/tika:latest-full完整版镜像内置了英语、意大利语、法语、西班牙语和德语的 OCR 支持。如需添加其他语言,请参考 Dockerfile 进行自定义构建。
启动后,访问 http://localhost:9998 验证服务是否正常运行。
部署 Meilisearch
Meilisearch 是一个开源的搜索引擎,用于对文件内容建立索引并提供高效的搜索能力。
生成 API 密钥
首先生成一段随机字符串作为 Meilisearch 的 Master Key:
openssl rand -hex 32请妥善保存此密钥,后续配置 Cloudreve 时需要使用。
启动 Meilisearch
通过 Docker 启动 Meilisearch:
docker run -d \
--name meilisearch \
-p 7700:7700 \
-e MEILI_MASTER_KEY='<你的 API 密钥>' \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:latest启动后,访问 http://localhost:7700 验证服务是否正常运行。
启用全文搜索
在 Cloudreve 管理面板中,前往 文件系统 -> 全文搜索 开启全文搜索,并填写以下配置:
索引器(Meilisearch)
| 参数 | 说明 |
|---|---|
| Meilisearch 端点 | Meilisearch 服务地址,默认为 http://localhost:7700。如果 Cloudreve 运行在 Docker 容器中,请使用容器网络内的地址。 |
| API 密钥 | 上一步生成的 Master Key。 |
| AI 语义搜索 | 可选功能,启用方法参考 AI 语义搜索。 |
内容提取器(Apache Tika)
| 参数 | 说明 |
|---|---|
| Apache Tika 端点 | Tika Server 地址,默认为 http://localhost:9998。如果 Cloudreve 运行在 Docker 容器中,请使用容器网络内的地址。 |
| 支持的扩展名 | 指定需要索引的文件扩展名列表,不在列表中的文件将被跳过。支持的文件类型请参考 Apache Tika 支持的格式。 |
| 最大文件大小 | 超过此大小的文件不会被索引。 |
分块
| 参数 | 说明 |
|---|---|
| 分块大小 | 文件内容将按此大小分块后索引,以提升搜索精度。Meilisearch 推荐的分块大小约为 1KB。 |
验证配置
保存设置后,刷新页面并上传一个新的文档文件,然后尝试搜索该文件中的内容以验证索引是否正常工作。
为已有文件建立索引
启用全文搜索后,Cloudreve 不会自动为已存在的文件建立索引。如需对历史文件进行索引,请前往管理面板 文件系统 -> 全文搜索 -> 索引器 (Meilisearch) -> 索引操作,点击 重建索引。
WARNING
重建索引会对所有符合条件的文件重新提取内容并建立索引,文件数量较多时可能需要较长时间,请在业务低峰期执行。
后续步骤
如需启用 AI 语义搜索以获得更智能的搜索体验,请参考 AI 语义搜索。