跳到主要内容

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_URLMeilisearch endpoint
MEILI_MASTER_KEY管理 key
MEILI_INDEXLLM-WIKI 搜索 index

5. 如何配置

建议 index:llm_wiki_pages

可搜索字段:

  • title
  • headings
  • content
  • tags
  • path

可过滤字段:

  • sourceProject
  • qualityStatus
  • language
  • pathPrefix
  • tags
  • topic

排序字段:

  • updatedAt
  • sourceProject

分面字段:

  • sourceProject
  • pathPrefix
  • tags
  • topic
  • qualityStatus

配置约束:

  • 支撑分组、过滤和 facet 的字段必须显式写入 Meilisearch filterableAttributes
  • 支撑排序的字段必须显式写入 sortableAttributes
  • pathPrefix 由控制面根据发布目录生成,不能让前端临时解析路径。
  • tagstopic 可先从 frontmatter、路径和控制面规则推导,后续再引入人工维护。

6. 如何使用

场景使用方式
文档站搜索Docusaurus 搜索框调用 LLM-WIKI Search API
搜索结果分组按项目、路径、质量状态分组
搜索到问答用户搜索无结果时切换到 RAGFlow 问答
反馈定位搜索结果带 page path,反馈能关联页面

7. 验收标准

  • 已审批页面能进入搜索 index。
  • 搜索结果能展示标题、路径、片段和来源项目。
  • 可以按项目、路径前缀、标签、主题和质量状态过滤或分组。
  • 搜索结果能跳转到文档页面。

8. 官方资料

对此页面有疑问?

问答功能将在后续接入 Answer API。当前可通过页面底部的反馈链接提交问题。

页面来源草稿
来源项目kunora-wiki
分支docs-publish
路径technology/components/kunora-wiki/product/07-mvp-technical-solution/06-meilisearch.md