Post

Parsing Selected Parquet Files in Microsoft's Graphrag

Parsing Selected Parquet Files in Microsoft's Graphrag

0.GraphRag 索引过程

image-20250906115336753

flowchart TB
  %% 原文与切块层
  subgraph RAW[原文与切块层]
    D[/documents.parquet<br/>文档级元信息<br/>doc_id · 标题 · 源文件 · 页范围 · 标签/]
    TU[text_units.parquet<br/>文本/表格单元<br/>unit_id · doc_id · page_no<br/>text · token_count · section_path]
    D -->|页码/来源追溯| TU
  end

  %% 知识图谱层
  subgraph KG[知识图谱层]
    E[entities.parquet<br/>实体表<br/>entity_id · name · type<br/>aliases · source_unit_ids]
    R[relationships.parquet<br/>关系表<br/>rel_id · head · relation · tail<br/>source_unit_id]
    TU -->|NER/表格解析/键值抽取| E
    TU -->|关系抽取| R
    E <-->|head/tail 关联| R
  end

  %% 社区与总结层
  subgraph COM[社区与总结层]
    C[communities.parquet<br/>社区划分<br/>community_id · entity_id<br/>level · score]
    CR[community_reports.parquet<br/>社区报告<br/>community_id · summary]
    E -->|图连通/相似度聚类| C
    R -->|边权支撑| C
    C -->|按社区生成| CR
  end

  %% 查询与回溯
  Q([查询/问题]) -->|向量或图检索| E
  Q -->|向量召回| TU
  CR -->|社区级定位/导航| Q
  TU -->|回溯原文页码| D

1. documents.parquet

作用:存储原始文档级别的元信息。

电商示例

doc_id title source_path page_start page_end meta_tags
D001 2025 智能门锁产品手册 catalog2025.pdf 1 150 [“智能门锁”,”产品手册”]
D002 2025 充电宝目录 catalog2025.pdf 151 200 [“充电宝”,”目录”]

👉 用来追溯 chunk、实体、社区来自哪个 PDF 文件、哪几页。


2. text_units.parquet

作用:把 PDF 切分后的 chunk/句子/表格单元存储下来,带文档和位置。

电商示例

unit_id doc_id page_no text token_count section_path
U1001 D001 12 “SL-200 型号支持指纹解锁,电池续航约 12 个月。” 24 “智能门锁 > 指纹系列 > SL-200”
U1002 D001 13 “SL-210 型号增加蓝牙连接功能,兼容手机 App 控制。” 30 “智能门锁 > 蓝牙系列 > SL-210”
U2001 D002 160 “PB-100 充电宝容量 20,000mAh,支持 65W 快充。” 22 “充电宝 > 高容量系列 > PB-100”

👉 GraphRAG 在这一层上做 实体抽取


3. entities.parquet

作用:所有识别出的实体,带归一化、别名、来源。

电商示例

entity_id name type aliases source_unit_ids
E001 SL-200 Product [“智能门锁 SL200”, “SL200”] [U1001]
E002 指纹解锁 Feature [“指纹识别”] [U1001]
E003 电池续航 Attribute [“Battery Life”] [U1001]
E004 12 个月 Value [“一年”] [U1001]

👉 GraphRAG 的关键资产,用于建图和社区发现。


4. relationships.parquet

作用:实体之间的边(关系),记录来源。

电商示例

rel_id head_entity relation tail_entity source_unit_id
R001 SL-200 has_feature 指纹解锁 U1001
R002 SL-200 has_attr 电池续航 U1001
R003 电池续航 value 12 个月 U1001
R004 SL-210 has_feature 蓝牙连接 U1002

👉 构成 知识图谱:产品 ↔ 功能/属性 ↔ 参数值。


5. communities.parquet

作用:图划分结果,表示每个实体属于哪个社区(簇)。

电商示例

community_id entity_id level score
C01 SL-200 2 0.92
C01 SL-210 2 0.89
C01 指纹解锁 2 0.75
C01 蓝牙连接 2 0.78
C02 PB-100 2 0.94
C02 快充 2 0.83

👉 C01 社区 ≈ “智能门锁系列”, C02 社区 ≈ “高容量充电宝系列”。


6. community_reports.parquet

作用:为每个社区生成的总结(LLM 产物)。

电商示例

community_id summary
C01 “智能门锁系列包括 SL-200 和 SL-210。SL-200 提供指纹解锁,电池续航 12 个月;SL-210 增加蓝牙功能,可用手机 App 控制。整体适合家庭用户,强调便利与安全。”
C02 “高容量充电宝系列 PB-100 主打 20,000mAh 大容量和 65W 快充,适合商务和旅行用户。”

👉 检索时:先找到社区 → 用 summary 帮用户快速定位,再下钻到具体实体/文本。

This post is licensed under CC BY 4.0 by the author.

© cryanskl. Some rights reserved.

本页浏览 2476 次 | 总访问量 13481

Using the Chirpy theme for Jekyll.