Meilisearch 技术方案
# Meilisearch 技术方案
1. 覆盖范围
Meilisearch 是 MVP 的全文搜索产品,负责人的站内搜索体验。
| LLM-WIKI 产品 | Meilisearch 支撑能力 |
|---|---|
| 知识索引产品 | 标题、路径、正文片段、标签索引 |
| 文档展示产品 | 搜索框、搜索结果页、结果分组 |
| 问答产品 | 搜索到问答切换的候选结果 |
2. 如何购买或获取
MVP 可选择:
| 方式 | 建议 |
|---|---|
| 自建 Meilisearch | 成本低,适合 MVP |
| Meilisearch Cloud | 降低运维,适合生产化 |
3. 如何开发
开发 MeilisearchIndexAdapter:
class MeilisearchIndexAdapter:
def upsert_pages(self, pages: list[SearchDocument]) -> IndexResult: ...
def delete_pages(self, page_ids: list[str]) -> IndexResult: ...
def search(self, query: str, filters: dict) -> SearchResult: ...
搜索文档结构:
{
"id": "publish/system/components/kunora-kgent/index.md",
"title": "...",
"path": "...",
"pathPrefix": "publish/system/components/kunora-kgent",
"headings": ["..."],
"content": "...",
"tags": ["kunora-kgent"],
"sourceProject": "kunora-kgent",
"topic": "agent-memory",
"qualityStatus": "approved",
"language": "zh-CN",
"updatedAt": "..."
}
4. 如何部署
Meilisearch 可直接二进制运行或 Docker 运行。官方 quickstart 使用 master key 启动本地服务,默认端口常见为 7700。
MVP 环境变量:
| 变量 | 用途 |
|---|---|
MEILI_URL | Meilisearch endpoint |
MEILI_MASTER_KEY | 管理 key |
MEILI_INDEX | LLM-WIKI 搜索 index |
5. 如何配置
建议 index:llm_wiki_pages。
可搜索字段:
titleheadingscontenttagspath
可过滤字段:
sourceProjectqualityStatuslanguagepathPrefixtagstopic
排序字段:
updatedAtsourceProject
分面字段:
sourceProjectpathPrefixtagstopicqualityStatus
配置约束:
- 支撑分组、过滤和 facet 的字段必须显式写入 Meilisearch
filterableAttributes。 - 支撑排序的字段必须显式写入
sortableAttributes。 pathPrefix由控制面根据发布目录生成,不能让前端临时解析路径。tags和topic可先从 frontmatter、路径和控制面规则推导,后续再引入人工维护。