Skip to content

知识图谱 GraphRAG 面试高频题

第一部分:基础篇(1-40题)

模块一:知识图谱基础概念(1-15题)

  1. 【⭐】什么是知识图谱?它和传统数据库(关系型、图数据库)有什么区别?
  • 考察点:对知识图谱核心定义的理解,与关系模型、图数据模型的区分
  • 得分项:知识图谱定义为语义网络+图结构、强调实体关系与属性、区分模式层与数据层;与传统数据库对比:关系型表结构难表达多对多关联,图数据库只存储结构无语义,知识图谱包含本体和推理能力
  • 回答:知识图谱是一种用图结构表示知识的方法,节点代表实体或概念,边代表关系。与传统数据库相比,知识图谱不仅存储图结构,还包含语义信息、本体(Ontology)和推理规则,支持复杂关联查询和逻辑推理。
  1. 【⭐】知识图谱的核心组成部分有哪些?
  • 考察点:知识图谱的构成要素
  • 得分项:实体、关系、属性、本体(概念、类型、规则)、实例数据
  • 回答:核心包括:实体(Entity)、关系(Relation)、属性(Attribute)、本体(Ontology:类、层次、约束)以及实例数据。本体定义知识的结构,实例是具体的数据填充。
  1. 【⭐】什么是RDF、SPARQL?什么是属性图(Property Graph)?两者有什么区别?
  • 考察点:知识图谱的两种主流数据模型
  • 得分项:RDF三元组(主体-谓词-客体),SPARQL查询语言;属性图有节点和边且可带属性;区别:RDF强调语义标准、开放世界假设,属性图更贴近开发、支持属性索引
  • 回答:RDF是资源描述框架,数据形式为三元组,SPARQL是标准查询语言。属性图常见于Neo4j等,节点和边都可以有键值对属性。主要区别:RDF基于集合论、支持推理,属性图性能高但缺乏通用语义标准。
  1. 【⭐】知识图谱的构建流程是什么?从非结构化文本如何构建?
  • 考察点:知识图谱工程流程
  • 得分项:信息抽取(实体识别、关系抽取、属性抽取)、共指消解、本体构建、知识融合、知识存储、质量评估
  • 回答:典型流程:1)数据预处理;2)本体设计;3)实体、关系、属性抽取;4)共指消解和实体对齐;5)知识融合去重;6)图数据库存储;7)质量校验。非结构化文本常用NLP pipeline(NER + RE + EL)。
  1. 【⭐】知识图谱中常见的知识表示方式有哪些?简述TransE模型。
  • 考察点:知识表示学习(KRL)
  • 得分项:符号表示、向量表示(Trans系列、GCN等);TransE将关系视为头尾实体向量差,h + r ≈ t
  • 回答:符号表示如RDF三元组;向量表示将实体和关系嵌入到低维空间。TransE是经典平移模型,关系r作为头实体向量h到尾实体向量t的平移,评分函数为负距离,能建模对称/反对称/组合关系。
  1. 【⭐】知识图谱如何更新?增量更新与全量更新各有什么优缺点?
  • 考察点:知识图谱维护
  • 得分项:全量重建简单但开销大;增量更新效率高但需处理冲突、一致性
  • 回答:全量更新定期重建整个图谱,保证一致性但延迟高。增量更新只添加或删除部分三元组,实时性高但需要处理实体链接、关系冲突和旧数据失效问题。
  1. 【⭐】什么是实体链接(Entity Linking)?有哪些常用方法?
  • 考察点:知识图谱构建关键环节
  • 得分项:将文本中的指代映射到知识库实体;方法包括基于词典、上下文嵌入(如BLINK)、图算法等
  • 回答:实体链接分为候选生成和消歧两步。常用方法:基于字符串匹配、TF-IDF、BERT交叉编码器、使用维基百科链接作为训练数据,以及图神经网络联合推理。
  1. 【⭐】什么是关系抽取?有监督、远程监督、少样本方法分别有什么特点?
  • 考察点:关系抽取技术
  • 得分项:有监督需要标注数据但准确高;远程监督用知识库对齐自动标注但有噪声;少样本利用原型网络或预训练模型
  • 回答:关系抽取提取实体对之间的语义关系。有监督准确但标注昂贵。远程监督启发式对齐,可能产生错误标签。少样本方法如FewRel,通过元学习或对比学习实现快速适应新关系。
  1. 【⭐】知识图谱中的共指消解(Coreference Resolution)是什么?为什么重要?
  • 考察点:知识融合
  • 得分项:识别指向同一实体的不同表述;避免冗余和冲突
  • 回答:共指消解判断“苹果”是指公司还是水果等。在知识图谱中,将不同名称或描述映射到同一实体ID,保证数据一致性,是融合多源数据的关键。
  1. 【⭐】什么是知识图谱的本体(Ontology)?请举例说明。
  • 考察点:模式层设计
  • 得分项:本体是对领域概念及其关系的显式规范;包括类、属性、约束、公理;例:人物类具有“出生日期”属性,父子关系域为人物
  • 回答:本体是知识图谱的骨架,定义了实体类型、关系类型和层次结构。例如在电影本体中,定义“导演”是“人”的子类,“执导”关系域为导演,值域为电影。
  1. 【⭐】常见的图数据库有哪些?各自的适用场景是什么?
  • 考察点:知识图谱存储技术
  • 得分项:Neo4j(属性图,社区成熟)、JanusGraph(分布式)、NebulaGraph(开源分布式高性能)、Amazon Neptune(托管)、Virtuoso(RDF)
  • 回答:Neo4j适合单机或小集群,Cypher简洁。JanusGraph和Nebula适合海量数据图计算。RDF场景可选Stardog、GraphDB。选型基于数据量、查询模式、事务需求。
  1. 【⭐】Cypher和Gremlin有什么区别?什么场景用哪个?
  • 考察点:图查询语言
  • 得分项:Cypher声明式类SQL,易学;Gremlin函数式遍历,灵活支持图计算
  • 回答:Cypher是Neo4j语言,适合做模式匹配和报表查询。Gremlin是Apache TinkerPop标准,适合复杂遍历、图算法和混合查询。一般业务分析用Cypher,复杂路径分析或图计算用Gremlin。
  1. 【⭐】知识图谱的推理是什么?列举两种推理方法。
  • 考察点:知识图谱补全与推理
  • 得分项:基于符号(规则推理如Datalog)和基于统计(表示学习链路预测)
  • 回答:推理从已知事实推导出新事实。符号方法如RDFS推理规则(子类传递性);统计方法如TransE预测缺失关系;还有基于图神经网络的关系路径推理。
  1. 【⭐】什么是知识图谱中的对齐(Entity Alignment)?有什么挑战?
  • 考察点:多源知识融合
  • 得分项:找出不同知识图谱中指向同一实体的节点;挑战:异构性、命名歧义、规模大、缺少标注
  • 回答:实体对齐是判断两个来自不同KG的实体是否等价。挑战包括结构差异、属性稀疏、跨语言和长尾实体对齐。常用方法基于嵌入(如TransE+对齐损失)或GNN。
  1. 【⭐】知识图谱的质量如何评估?有哪些维度?
  • 考察点:质量保证
  • 得分项:准确性、完整性、一致性、时效性、无冗余等
  • 回答:评估维度:1)正确性(事实是否真);2)覆盖率(缺失关系/实体比例);3)一致性(有无矛盾);4)时效性(更新速度);5)冗余度;6)可信度(来源权威性)。

模块二:GraphRAG 核心概念(16-28题)

  1. 【⭐】什么是GraphRAG?与传统RAG有什么区别?
  • 考察点:GraphRAG定义与优势
  • 得分项:GraphRAG使用知识图谱作为检索上下文来源,相比向量RAG可提供结构化、关系型知识,减少幻觉,支持多跳推理
  • 回答:GraphRAG是将知识图谱与检索增强生成结合的框架。传统RAG用向量相似度检索文本块,缺乏对实体间关系的显式建模。GraphRAG基于图谱检索相关子图或路径,保留语义关系,能更好处理多跳问题和复杂逻辑推理。
  1. 【⭐】GraphRAG的核心流程包括哪几个步骤?
  • 考察点:GraphRAG工作流
  • 得分项:知识图谱构建、查询理解、子图检索、上下文封装、LLM生成
  • 回答:1)离线圈谱构建(实体抽取、关系抽取);2)在线查询:解析用户问题,识别实体和关系;3)在图谱中检索相关子图(如周边邻居、关键路径);4)将子图序列化为文本或结构化表示;5)与Prompt组合输入LLM生成答案。
  1. 【⭐】为什么GraphRAG可以缓解大模型幻觉?
  • 考察点:GraphRAG优势原理
  • 得分项:提供显式、可追溯的事实骨架;限制LLM在子图范围内生成;关系路径增强逻辑一致性
  • 回答:大模型幻觉常源于缺乏事实约束。GraphRAG检索出的子图是真实存储的知识,LLM被强制基于这些结构化信息回答,减少了编造。同时关系路径提供了推理链路,生成过程更可控。
  1. 【⭐】GraphRAG中,子图检索的常见方法有哪些?
  • 考察点:检索策略
  • 得分项:基于实体邻域扩展、基于规则路径、基于图嵌入相似度、基于Pagerank子图
  • 回答:常用方法:1)提取查询中实体,取k跳邻居子图;2)使用图算法(如BFS、最短路径)连接多个实体;3)将图节点向量化,检索与查询嵌入最相关的子图;4)基于摘要图的层级检索(如微软GraphRAG方案)。
  1. 【⭐⭐】GraphRAG如何将检索到的子图输入给大模型?有哪几种表示方式?
  • 考察点:子图序列化
  • 得分项:文本三元组列表、JSON结构化、自然语言描述、图线性化编码(如关系路径字符串)
  • 回答:方式包括:1)简单列举所有三元组;2)用JSON数组描述节点和边;3)转化为句子描述(如“张三 任职于 某某公司”);4)使用特殊token(如GraphPrompt中的图线性化)。好的表示应保留拓扑信息且不超出LLM上下文。
  1. 【⭐】GraphRAG在查询时如何处理多跳问题?请举例。
  • 考察点:多跳推理能力
  • 得分项:图谱通过关联关系连接两个不相邻实体;检索路径而非单跳邻居
  • 回答:例如问题“张三的公司位于哪个城市?”需要两跳:张三→任职于→公司→位于→城市。GraphRAG在图谱中执行多跳展开,提取从张三到城市的完整路径,作为上下文提供给LLM,让模型沿路径生成答案。
  1. 【⭐】什么是GraphRAG中的“检索粒度”?通常检索节点、边还是子图?
  • 考察点:检索设计
  • 得分项:节点级检索不保留关系;边级检索信息碎片化;子图级最常用,保留局部结构
  • 回答:检索粒度指从图谱中提取的最小单元。节点检索只返回实体描述,缺少关系信息;边返回单条事实;子图检索返回一组相关实体和关系,最常用,因为提供了上下文结构。一些方法还检索图模式或频繁子图。
  1. 【⭐】GraphRAG如何处理动态更新的知识?与向量数据库RAG对比。
  • 考察点:实时性
  • 得分项:图谱支持增量更新,无需重建索引;向量库需重新embed或增量索引
  • 回答:GraphRAG中,新增一条知识只需在图谱中添加边或节点,后续查询立即生效,无需重新索引全部数据。向量RAG若使用近似最近邻索引,增量添加文档较方便但可能存在延迟。但图谱维护实体链接等更复杂。
  1. 【⭐】构建GraphRAG的知识图谱时,如何平衡细粒度与规模?
  • 考察点:工程权衡
  • 得分项:本体设计控制粒度;仅抽取高价值关系;使用摘要节点或层级图谱
  • 回答:过细粒度导致图谱爆炸、检索慢;过粗丢失信息。常用策略:1)定义核心关系类型阈值;2)对同类型实体聚合(如文档→段落→句子分层);3)微软GraphRAG的社区摘要,压缩大规模图谱。
  1. 【⭐】GraphRAG需要哪些预处理?相比向量RAG额外开销是什么?
  • 考察点:部署成本
  • 得分项:需要实体/关系抽取、图存储、图索引;额外开销包括结构化抽取模型和查询规划
  • 回答:向量RAG只需分块和embedding。GraphRAG额外需要:1)信息抽取管道(NER+RE),可能是LLM或小模型;2)图数据库存储与维护;3)查询时的图遍历,可能比向量相似度搜索慢。但能提升复杂问答准确性。
  1. 【⭐】GraphRAG适合哪些场景?不适合哪些?
  • 考察点:适用性判断
  • 得分项:适合多跳推理、关系密集、需要可解释性的场景;不适合纯事实记忆、简单QA或实时性极高场景
  • 回答:适合金融风控(关联挖掘)、医疗诊断(疾病-症状-药物关系)、知识密集型问答、推荐系统(用户-物品多阶连接)。不适合:开放域闲聊、简单事实问答(如“巴黎是哪个国家的首都”用传统RAG即可)、高吞吐低延迟场景。
  1. 【⭐】什么是“基于知识图谱的检索增强”与“基于知识图谱的生成”区别?
  • 考察点:概念辨析
  • 得分项:前者图谱作为外部知识检索;后者可能用图到文本生成
  • 回答:GraphRAG重点在检索增强,即先从图谱取知识再送LLM。而知识图谱生成可以是直接训练图编码器+文本解码器端到端生成(如Graph2Seq),不需LLM检索。GraphRAG利用现成LLM,更通用。
  1. 【⭐】简述微软提出的GraphRAG方案(见论文“From Local to Global”)。
  • 考察点:业界前沿
  • 得分项:基于LLM抽取实体关系,构建图谱,并做社区检测,为每个社区生成摘要,检索时先查社区摘要,再定位具体子图
  • 回答:微软GraphRAG提出两阶段:1)用LLM从文档中抽取实体关系,形成知识图谱;2)对图谱做Leiden社区划分,每个社区生成自然语言摘要;查询时先匹配相关社区摘要,再深入子图检索,实现全局理解与局部精确的平衡。

模块三:GraphRAG 关键技术(29-40题)

  1. 【⭐⭐】GraphRAG中如何做查询的实体识别和链接?与信息抽取有什么区别?
  • 考察点:查询解析
  • 得分项:对用户问题做NER和EL,映射到图谱已有实体;与离线抽取不同的是在线、短文本、可能缺失实体处理
  • 回答:使用轻量级模型(如Flair、Spacy)或LLM从问题中提取实体提及,再通过字符串匹配、嵌入相似度或图内查找链接到节点。区别是查询短语短、意图明确,需处理同义词和实体缺失(返回候选)。
  1. 【⭐⭐】如何设计GraphRAG的检索评分函数?多种信息如何融合?
  • 考察点:检索相关性
  • 得分项:考虑实体重要性、关系路径长度、边权重、节点度数;融合可采用加权线性或学习排序
  • 回答:评分函数可组合:1)实体与查询的语义相似度;2)子图内实体的PageRank值;3)路径长度惩罚(短路径高分);4)关系类型权重。最终可以归一化后求和,或使用神经网络(如GNN)打分。
  1. 【⭐⭐】GraphRAG中,上下文窗口有限,如何压缩检索到的子图?
  • 考察点:上下文管理
  • 得分项:剪枝低度节点、只保留核心路径、聚合相似关系、摘要化
  • 回答:方法包括:1)根据实体重要性排序,截断前k个;2)保留连接查询实体的最短路径,去掉悬挂节点;3)合并相同谓词的多条边;4)用LLM对子图生成文本摘要;5)使用图粗化算法。
  1. 【⭐⭐】GraphRAG如何处理查询中的隐式关系(如“影响”“相关”)?
  • 考察点:复杂查询理解
  • 得分项:依赖图谱中预定义关系泛化;或利用LLM将隐式关系转化为显式路径模式
  • 回答:若图谱中未直接定义“影响”,可通过多跳路径(如A→导致→B,B→关联→C)近似。也可用LLM做关系抽象:将用户问题中的动词映射到图谱中的具体关系类型,或使用关系嵌入相似度检索。
  1. 【⭐⭐】GraphRAG中,图谱的存储选择(图数据库 vs 内存图)对性能有何影响?
  • 考察点:系统设计
  • 得分项:图数据库支持持久化、事务、索引;内存图适合低频更新+高性能查询
  • 回答:图数据库如Neo4j提供Cypher、索引和集群,但I/O开销大。内存图如NetworkX、igraph或自研哈希索引,适合离线服务或小规模图谱。生产GraphRAG常结合:热数据内存缓存,冷数据DB。
  1. 【⭐⭐】如何评估GraphRAG系统的效果?有哪些指标?
  • 考察点:评测体系
  • 得分项:答案准确性(EM、F1)、检索命中率(Recall@k)、回答可解释性、端到端延迟
  • 回答:传统RAG指标如准确率、召回率、BLEU/ROUGE。GraphRAG额外评估:1)检索子图与黄金子图的重叠度(Node/Edge Recall);2)路径覆盖率;3)用户对提供的关系链路的满意度;4)复杂多跳问题解答准确率(如HotpotQA上的F1)。
  1. 【⭐⭐】GraphRAG如何利用图结构进行反事实推理或解释生成?
  • 考察点:可解释性
  • 得分项:展示推理路径;通过删除边观察答案变化做敏感性分析
  • 回答:GraphRAG天然可解释:返回给用户的答案可附上子图路径作为证据。反事实推理可用图论方法:移除某条边后是否改变答案,判断该关系的重要性。也可生成“如果……则……”假设分析。
  1. 【⭐⭐】GraphRAG中如何处理跨文档的实体共指?实体ID冲突怎么办?
  • 考察点:知识融合
  • 得分项:离线构建统一ID映射;在线查询时做实体消歧
  • 回答:构建阶段使用实体对齐技术将不同文档中同一实体合并为单一节点。若在线查询时遇到未对齐实体,可以使用模糊匹配+上下文相似度选择最可能的ID,或返回多个候选让LLM判断。
  1. 【⭐⭐】GraphRAG中,图谱的质量问题(缺失边、错误关系)如何影响最终答案?如何鲁棒处理?
  • 考察点:鲁棒性
  • 得分项:缺失边导致检索不到答案;错误关系误导LLM。鲁棒方法:图谱补全预测、多路径投票、结合向量检索兜底
  • 回答:缺陷图谱可能产出错误或空答案。应对策略:1)使用知识图谱补全模型推理可能缺失关系;2)检索时扩展2跳范围覆盖缺失边;3)同时执行向量检索作为backup,融合两种结果;4)LLM自身先判断子图是否自洽。
  1. 【⭐⭐】GraphRAG是否可以用大模型直接生成图查询(如Cypher)代替子图检索?优缺点?
  • 考察点:Text-to-Query方法
  • 得分项:LLM生成图查询语句精确检索;缺点:生成复杂查询易错,依赖训练
  • 回答:可以,类似于Text-to-SQL。优点:利用图数据库索引能力,检索高效精确。缺点:LLM需要理解图模式并生成正确语法,出错率高;不擅长多跳或动态结构。GraphRAG通常结合:先用简单实体检索,再用图算法扩展路径。
  1. 【⭐⭐】GraphRAG与传统基于符号推理的问答(如FAQ、逻辑编程)有何区别?
  • 考察点:范式对比
  • 得分项:GraphRAG基于神经+符号混合;传统符号推理严格基于规则,缺乏泛化
  • 回答:传统符号问答(如Prolog)需要专家编写规则,无法处理自然语言模糊匹配和未定义规则。GraphRAG使用LLM进行自然语言理解与生成,图谱只提供事实,结合了符号知识的精确性和神经模型的语义理解能力。
  1. 【⭐】GraphRAG中,图谱的版本管理怎么做?比如知识更新的同时保持旧查询一致性?
  • 考察点:工程实践
  • 得分项:使用时间戳标注边;快照隔离;双图谱切换
  • 回答:可为每条边添加时间范围或版本号,查询时根据时间上下文过滤。或者支持图谱快照,针对长时运行任务固定图谱版本。还可采用蓝绿部署:新旧图谱同时存在,按用户或查询比例切换。

第二部分:进阶篇(41-80题)

模块四:图谱索引与检索优化(41-55题)

  1. 【⭐⭐】在大规模知识图谱(亿级节点)上,GraphRAG检索如何做到低延迟?
  • 考察点:高性能检索
  • 得分项:图索引分片、缓存热点子图、近似图算法、预计算路径
  • 回答:策略包括:1)图分片(基于哈希或社区划分),查询时路由到相关分片;2)使用Redis缓存高频子图;3)用预计算的全对最短路径距离矩阵(适合静态图);4)改用近似方法如个性化PageRank截断;5)使用图数据库的索引和并行查询。
  1. 【⭐⭐⭐】什么是图上的“近似最近邻检索”?如何用于GraphRAG?
  • 考察点:图与向量融合
  • 得分项:将图节点映射到向量空间,使用HNSW等ANN加速节点检索
  • 回答:将知识图谱中的节点通过GNN或TransE嵌入为向量,查询时使用ANN检索出top-k相关节点,再扩展其邻域形成子图。比全图遍历快,适合超大规模图谱。
  1. 【⭐⭐】GraphRAG中如何设计图谱的索引结构?除了B树,图相关索引有哪些?
  • 考察点:数据库索引
  • 得分项:邻接索引、路径索引、倒排索引(谓词->边集合)、顺序图分区
  • 回答:常用图索引:1)邻接表;2)谓词倒排索引,快速找到特定关系的边;3)路径索引(如树形前缀),加速模式匹配;4)基于子图同构的索引(如GraphGrep);5)在图数据库中自动建立节点属性索引。
  1. 【⭐⭐】如何利用图神经网络(GNN)提升GraphRAG的检索质量?
  • 考察点:深度学习检索
  • 得分项:使用GNN编码子图得到密集向量,计算与查询向量的相似度
  • 回答:训练一个GNN(如RGCN)将子图编码为固定向量,同时将查询也编码,通过相似度判断子图相关性。可在离线阶段预计算所有子图向量,在线检索时使用ANN匹配。优势是能学习复杂结构和关系重要性。
  1. 【⭐⭐】GraphRAG中如何进行查询重写(Query Rewriting)来改善检索?
  • 考察点:查询预处理
  • 得分项:实体消歧、关系扩展、添加约束、分解多跳为路径模式
  • 回答:原始“苹果公司创始人相关产品”改写为:[实体:Steve Jobs]—(创立)—>[公司:Apple]—(生产)—>[产品]。也可以使用同义词替换关系(如“创建”改为“成立”),加入时间约束等。重写依赖LLM或规则库。
  1. 【⭐⭐】冷启动问题:没有现成知识图谱,如何快速部署GraphRAG?
  • 考察点:快速实现
  • 得分项:使用LLM从文档中在线抽取图谱并缓存;或先用向量RAG混合过渡
  • 回答:方案1:对每个查询,用LLM从相关文档中动态抽取实体关系构成临时子图(代价高)。方案2:先用向量检索召回相关文档,然后用这些文档构建小型图谱。方案3:利用通用知识图谱(如Wikidata)和实体链接作为初始图谱。
  1. 【⭐⭐】GraphRAG中,如何处理数值范围查询(如“价格>100的商品”)?
  • 考察点:属性查询
  • 得分项:将数值属性作为节点或边属性;查询时进行属性过滤
  • 回答:知识图谱中实体的数值属性(如价格)可作为节点属性存储。检索时先通过实体链接找到商品类型节点,再按属性范围过滤邻居。图数据库通常支持属性索引和范围查询,可结合Cypher的WHERE子句。
  1. 【⭐⭐】如何设计GraphRAG的缓存策略以提升重复查询性能?
  • 考察点:系统优化
  • 得分项:缓存子图结果、缓存查询-答案对、缓存路径模式
  • 回答:1)LRU缓存完整子图序列化结果;2)缓存实体邻域(如2跳子图),当查询涉及相同实体时复用;3)缓存常用路径模式(如“(人)-任职->(公司)”)。需要注意知识更新时缓存失效策略。
  1. 【⭐⭐】GraphRAG的检索复杂度如何度量?请给出典型的时间复杂度。
  • 考察点:算法分析
  • 得分项:实体识别O(n_mention);子图扩展O(d^k) d为平均度,k为跳数
  • 回答:主要开销:1) NER/EL:通常线性于问题长度;2) 检索起始实体:O(1)哈希查找;3) 邻域扩展:BFS k跳需要访问节点数约O(d^k),对稠密图可能爆炸,因此需要剪枝。整体在跳数≤2时通常可控。
  1. 【⭐⭐】GraphRAG与向量数据库RAG如何混合使用?有什么架构模式?
  • 考察点:混合检索
  • 得分项:并行双路召回然后融合排序;图谱作为向量检索的过滤条件;向量做兜底
  • 回答:模式A:GraphRAG和向量RAG并行检索,结果用RRF或学习排序融合。模式B:先用图谱检索得到候选实体,再用向量检索文档块。模式C:向量检索返回相关段落,从中抽取实体再补充图谱信息。典型如微软GraphRAG也保留了向量索引。
  1. 【⭐⭐】GraphRAG中如何支持多模态知识(图像、视频)?
  • 考察点:多模态扩展
  • 得分项:多模态实体节点存储特征向量;检索时跨模态对齐
  • 回答:将图像、视频作为实体节点,可以存储嵌入特征。用户查询文本,通过CLIP等模型映射到多模态空间,检索最相似的图像节点,然后扩展其在图谱中的关系子图。或者先检索文本子图,再关联多媒体节点。
  1. 【⭐⭐】GraphRAG如何与知识图谱的补全(KGC)相结合?
  • 考察点:动态补全
  • 得分项:检索前先补全缺失关系;或生成时让LLM推断隐含关系
  • 回答:离线阶段使用KGC模型(如CompGCN)预测缺失边。在线查询时,如果检索到的子图稀疏,可以调用轻量级KGC模型补全相邻关系后再送LLM。另一种方式是在Prompt中明确要求LLM基于上下文做合理推断,但需防止幻觉。
  1. 【⭐⭐】GraphRAG中,不同LLM(小模型 vs 大模型)对最终效果影响大吗?
  • 考察点:模型选型
  • 得分项:大模型理解复杂结构和长上下文更好,小模型可能丢失关系;但经过良好Prompt工程,小模型也可接受
  • 回答:大模型(GPT-4、Claude)在处理子图序列化、多跳推理方面明显优于小模型(7B)。但通过设计紧凑的上下文表示,小模型也可胜任简单问答。成本敏感场景可尝试小模型+图结构化输入。
  1. 【⭐⭐】评价一下“图RAG优于向量RAG”这一说法是否绝对?为什么?
  • 考察点:批判性思维
  • 得分项:不是绝对;图RAG在关系密集任务胜出,但构建成本高、通用性差
  • 回答:该说法不绝对。向量RAG在事实检索、开放域、长文档问答中简单有效;GraphRAG需要预先构建图谱,对非结构化、动态变化数据适应性差。实际应根据任务特点选择或混合。两者各有所长。
  1. 【⭐⭐】GraphRAG的“全局检索”如何实现?比如问“请总结所有关于环保政策的讨论”。
  • 考察点:全局聚合查询
  • 得分项:依赖社区摘要或图挖掘的主题聚类
  • 回答:无法通过传统邻域检索,因为查询没有具体实体。微软GraphRAG方案先对全图做社区划分,每个社区生成摘要。全局问题匹配到相关社区摘要,然后返回摘要或深入检索。另一种方法是图统计(节点度数、中心性)提取关键主题。

模块五:GraphRAG 与 LLM 协作(56-70题)

  1. 【⭐⭐】GraphRAG中,Prompt应该如何设计以充分利用子图信息?
  • 考察点:Prompt工程
  • 得分项:指明子图格式、要求基于关系推理、禁止编造、提供示例
  • 回答:典型Prompt:“给定以下知识图谱子图(三元组列表),请回答问题。如果子图中信息不足,请回答‘未知’。避免使用外部知识。子图:{subgraph}。问题:{question}。” 还可以添加指令“沿关系路径推理”。
  1. 【⭐⭐⭐】是否可以训练一个专门编码知识图谱的适配器(Adapter)插入LLM?
  • 考察点:模型微调
  • 得分项:通过图到文本的适配器将图编码为LLM前缀;或者使用Graph Toolformer
  • 回答:可以。设计一个图编码器将子图映射到LLM的连续表示空间,作为软提示前缀。训练时冻结LLM,只训练适配器。或者利用Graph-Toolformer让LLM学习调用图查询API。这种方法可提升效果但增加复杂度。
  1. 【⭐⭐】GraphRAG中,LLM是否可以直接用来做图上的路径查找(如思考链)?
  • 考察点:LLM推理能力
  • 得分项:LLM有潜力做少跳推理,但大规模图不可行;可混合符号执行
  • 回答:可以将子图以文本形式给LLM,并指示“从实体A出发,沿着关系R1走到实体B,再沿着R2……”。但受限于上下文长度和图规模,小图可尝试,大图仍需图算法做路径查找。最优是图数据库找出路径,LLM仅做语义理解。
  1. 【⭐⭐】GraphRAG的答案生成阶段,如何避免模型忽略图谱中的矛盾信息?
  • 考察点:冲突处理
  • 得分项:在Prompt中强调“如有矛盾,请指出”;或让LLM选择多数占优的路径
  • 回答:当子图中存在矛盾三元组(如A-任职于→B和A-任职于→C),可要求LLM输出矛盾证据并说明。更好的做法是离线清洗冲突,或在线投票:提取多条路径让LLM决定可信度。
  1. 【⭐⭐】如何利用LLM迭代式改进GraphRAG的检索?(主动学习)
  • 考察点:闭环优化
  • 得分项:LLM评估检索子图是否足够,不足则反馈缺失关系类型,触发二次检索
  • 回答:首次检索后,LLM生成答案时若发现信息不足,可以输出“需要更多关于X关系的信息”。系统解析后,在图谱中补充检索相关关系或扩展跳数,将新子图追加到上下文,再次尝试生成。类似Self-Ask框架。
  1. 【⭐⭐】GraphRAG如何处理多语言知识图谱?查询语言可能与图谱语言不一致。
  • 考察点:跨语言
  • 得分项:实体对齐使用多语言嵌入;查询翻译或使用多语言LLM
  • 回答:将不同语言的实体统一到相同ID(通过跨语言实体对齐)。用户查询时,使用多语言NER和翻译工具将查询映射到图谱语言。或直接使用多语言LLM(如mT5、GPT-4)理解查询,然后在英文或中文图谱上检索。
  1. 【⭐⭐】什么是“图增强的LLM智能体”?与GraphRAG有何关系?
  • 考察点:Agent融合
  • 得分项:Agent将图谱作为工具使用;GraphRAG是RAG的一种形式,可嵌入Agent
  • 回答:图增强Agent指在决策或推理过程中使用知识图谱作为外部记忆或行动计划依据。GraphRAG可以视为Agent中一个特殊的检索工具(Tool)。Agent可以调用图查询、图遍历等操作,比被动GraphRAG更主动。
  1. 【⭐⭐】GraphRAG中,如何让LLM生成带结构的答案(如表格、JSON)?
  • 考察点:输出格式控制
  • 得分项:在Prompt中给出JSON schema或示例;使用结构化解码
  • 回答:可以指定“输出格式为JSON,包含answer和evidence_path”。更可靠的方法是用OpenAI的function calling或JSON mode,并验证是否符合schema。图谱中提取的关系天然结构化,利于生成结构化答案。
  1. 【⭐⭐】GraphRAG如何与对话上下文结合,实现多轮对话?
  • 考察点:对话式问答
  • 得分项:每轮维护当前子图缓存和对话实体历史
  • 回答:类似普通RAG,每轮对话时提取当前问题中的实体,结合历史对话中的实体进行联合检索。可以维护一个动态子图(对话上下文图谱),新检索结果并入。注意上下文窗口管理。
  1. 【⭐⭐】如何评估GraphRAG中LLM对子图的理解程度?能否自动测试?
  • 考察点:评估方法
  • 得分项:设计图推理的探针任务,如“子图中A和B是否有路径?”比较LLM答案与真实
  • 回答:构建图推理基准测试:给定子图,询问关系存在性、路径数量、属性值等。通过对比LLM输出与标准答案,计算准确率。也可以使用对抗性子图(包含干扰边)测试鲁棒性。
  1. 【⭐⭐】GraphRAG中,是否可以完全不用图数据库,只用LLM内部化存储知识?
  • 考察点:极限讨论
  • 得分项:不可行,LLM参数存储无法精确记忆大规模结构化关系,且不支持更新
  • 回答:LLM参数能记忆常见事实,但无法精确存储亿级三元组,也无法实时更新。GraphRAG的核心优势就是外置可维护的知识图谱,脱离依赖模型参数。
  1. 【⭐⭐】GraphRAG如何处理时序知识(如“2023年之前微软CEO是谁”)?
  • 考察点:时序图谱
  • 得分项:为边添加时间区间或具体时间戳;查询时过滤
  • 回答:构建带时间属性的知识图谱,每个关系边可以附加“start_time”和“end_time”。查询时根据时间条件检索有效的关系。也可以将时间建模为节点(如时间点实体),通过“发生于”关系连接事件。
  1. 【⭐⭐】GraphRAG在生产系统中,如何监控和调试检索失败?
  • 考察点:运维
  • 得分项:记录query、检索子图、LLM答案、用户反馈;分析失败模式
  • 回答:建立日志系统,记录每次查询的实体识别结果、检索子图大小、LLM输出。离线分析案例:无结果可能是因为实体链接失败,或子图不相关,或LLM拒绝回答。针对常见错误添加规则或改进检索。
  1. 【⭐⭐】GraphRAG的隐私与安全:图谱包含敏感信息,如何控制访问权限?
  • 考察点:安全
  • 得分项:图谱存储时添加访问控制标签;查询时基于用户角色过滤子图
  • 回答:可以使用图数据库的行级安全特性(如Neo4j的基于属性的访问控制)。每个边或节点标记权限级别,检索时根据用户身份和权限,仅返回允许访问的子图。另外可对检索结果做脱敏处理再送LLM。
  1. 【⭐⭐⭐】你认为GraphRAG未来的发展方向有哪些?
  • 考察点:前瞻性
  • 得分项:自动化构建、图-向量统一、在线学习、多模态GraphRAG、轻量化小模型
  • 回答:1)自动图谱构建从非结构化数据无需人工;2)图与向量统一索引和检索框架;3)流式更新支持实时知识;4)融合视觉/语音的多模态GraphRAG;5)端侧部署的小型GraphRAG用于移动设备;6)强化学习优化检索策略。

模块六:GraphRAG 系统设计与工程挑战(71-80题)

  1. 【⭐⭐】设计一个中型的GraphRAG系统,请画出架构图并说明各模块。
  • 考察点:系统设计
  • 得分项:离线构建管道、在线查询服务、缓存、图存储、LLM服务等
  • 回答:架构包括:离线模块:文档解析→信息抽取→实体链接→图谱存储(Neo4j集群);在线模块:查询解析器→实体链接→图检索器(BFS+剪枝)→上下文构建器→LLM调用→答案后处理。附加缓存(Redis)、监控、日志。可水平扩展图检索器。
  1. 【⭐⭐】GraphRAG在实时性要求高的场景(<100ms)下可行吗?如何做?
  • 考察点:性能极限
  • 得分项:不可行通常需图数据库查询+LLM调用远大于100ms;折衷方案:预计算常见问答或只用图检索不用LLM
  • 回答:纯图检索(不含LLM)可达到亚100ms,但GraphRAG包含LLM生成通常超过1s。若要低延迟:1)用较小LLM(如7B)且量化;2)缓存热点答案;3)只做图检索返回结果不生成;4)使用边缘计算缓存模型。一般GraphRAG适合对延迟不敏感的问答场景。
  1. 【⭐⭐】GraphRAG中,如何解决LLM输出不遵循子图约束的问题?
  • 考察点:可控生成
  • 得分项:使用约束解码(Guidance、Outlines);多次采样投票
  • 回答:可用结构化生成框架(如LMQL、Guidance)在解码时限制token只能来自子图中实体或关系。另一种是对多个采样结果做一致性检查,选择完全基于子图的答案。还可以用另一个小模型验证答案是否可被子图支持。
  1. 【⭐⭐】在分布式环境下,GraphRAG的图检索如何避免跨节点通信瓶颈?
  • 考察点:分布式图处理
  • 得分项:基于图分区将查询路由到相关分区;减少跨跳
  • 回答:使用图分区算法(如哈希分区、割边分区)。查询时首先确定起始实体所在分区,限制检索跳数在分区内部。如果必须跨区,可采用异步并行请求聚合。常见图数据库JanusGraph支持分布式查询。
  1. 【⭐⭐】GraphRAG的CI/CD流程中,如何自动化测试图谱变更对问答效果的影响?
  • 考察点:质量保障
  • 得分项:维护基准问答集,每次图谱更新后运行回归测试,比较答案差异
  • 回答:设置自动流水线:图谱变更(新增边或重新抽取)后,在离线环境构建新图谱,对标准问答集执行GraphRAG推理,对比旧答案。监控指标(准确率变化、无答案率)。如果退化则告警或回滚。
  1. 【⭐⭐】GraphRAG中,如何处理用户输入中的不确定性(如“可能”“大概”)?
  • 考察点:不确定性处理
  • 得分项:图谱中可存储概率边;LLM输出置信度或解释
  • 回答:在图谱中可以为边添加置信度权重,检索时只取高于阈值的边。用户查询含有不确定性时,让LLM基于多个可能子图给出概率分布答案,或者输出“可能有X、Y两种解释”。
  1. 【⭐⭐】GraphRAG与“语义搜索”有何异同?
  • 考察点:概念区分
  • 得分项:语义搜索侧重文档与查询语义匹配;GraphRAG侧重图结构关系
  • 回答:语义搜索通常用向量检索文本段落,GraphRAG的核心区别是使用知识图谱结构来提供关系上下文。两者目标相似但技术路径不同,也可以结合。
  1. 【⭐⭐】GraphRAG中,如何处理循环关系(如A喜欢B,B喜欢A)?会对生成造成困扰吗?
  • 考察点:图论
  • 得分项:LLM能理解双向关系,但可能造成无终止推理。应限制路径深度。
  • 回答:循环关系在图谱中是允许的,比如“朋友”关系通常是双向。检索时需设置最大跳数避免无限展开;LLM在处理循环时可能重复推理,可在Prompt中说明“避免循环路径”。
  1. 【⭐⭐】在资源受限(如嵌入式设备)上能否运行GraphRAG?如何简化?
  • 考察点:轻量化
  • 得分项:本地小图谱+小模型(Phi-3等) + 精简检索
  • 回答:可以。将知识图谱缩小到千级别节点,使用轻量图数据库SQLite+内存图。LLM使用3B级别(如Phi-3-mini)并量化,检索使用简单BFS,甚至将子图直接缓存。延迟可接受。
  1. 【⭐⭐】GraphRAG如何与基于规则的专家系统结合?
  • 考察点:混合智能
  • 得分项:规则系统处理确定性推理,GraphRAG处理自然语言输入;规则可约束LLM输出
  • 回答:构建规则库(如“如果X的年龄>18则是成人”),在GraphRAG推理前先应用规则推理出新事实加入子图。或让LLM生成答案后经过规则校验器矫正。这种方法结合了符号规则和神经网络。

第三部分:实战篇(81-100题)

模块七:经典场景案例(81-95题)

  1. 【⭐⭐】设计一个金融领域的GraphRAG系统,用于分析企业关联交易和风险传导。
  • 考察点:领域应用设计
  • 得分项:构建企业-高管-股东-投资-担保等关系图;查询例如“找出通过股权路径影响X公司的所有实体”等
  • 回答:离线从年报、公告抽取实体(公司、自然人、产品)和关系(持股、任职、担保、诉讼)。在线查询用户问题如“A公司若违约会影响到哪些公司”,检索其多跳担保和持股网络,子图送LLM生成风险路径描述和影响程度评估。需注意时间性和权重。
  1. 【⭐⭐】医疗问答场景:如何用GraphRAG回答“XX症状可能是什么疾病?需要做什么检查?”
  • 考察点:医疗场景
  • 得分项:构建症状-疾病-检查-药物关系图谱;多跳检索症状->疾病->检查
  • 回答:图谱包含症状节点、疾病节点、检查节点,关系有“表现为”“确诊需检查”“推荐用药”。用户问“头痛、发热可能是什么病”,查询节点“头痛”“发热”的公共邻居疾病,并进一步检索各疾病的推荐检查项。LLM生成疾病概率排序和检查建议。
  1. 【⭐⭐】推荐系统场景:如何利用GraphRAG做可解释推荐?
  • 考察点:推荐+解释
  • 得分项:用户-物品交互图,物品-属性图;检索用户历史交互物品的相似物品路径提供推荐理由
  • 回答:图谱包括用户节点、物品节点,边如“购买”“点击”,以及物品-属性边。给定用户,检索其购买物品的邻居物品(协同过滤),并通过属性路径解释(如“因为您喜欢导演X的电影,所以推荐Y”)。LLM生成自然语言推荐语。
  1. 【⭐⭐】智能客服场景:如何处理产品故障排查的GraphRAG?
  • 考察点:故障诊断
  • 得分项:构建故障现象-原因-解决方案图;支持多步引导
  • 回答:知识图谱存储故障现象、可能原因、解决方案及操作步骤。用户描述现象,系统抽取实体与现象匹配,检索关联原因和方案。LLM可以生成对话式引导,“根据现象A,可能是原因B,建议尝试方案C,如果不行再问D”。支持多轮交互。
  1. 【⭐⭐】代码库理解场景:用GraphRAG回答关于代码调用关系的问题。
  • 考察点:代码分析
  • 得分项:从AST构建函数-调用-类图;回答“修改函数A会影响哪些函数?”
  • 回答:通过静态分析抽取函数、类、模块及其调用关系图。用户提问“如果修改db_connect函数,哪些上层函数受影响”,检索所有调用链(正向和反向),LLM生成影响函数列表及风险建议。可结合代码文档。
  1. 【⭐⭐】法律文书问答:构建法律知识图谱,GraphRAG回答“某条款与另一条款是否有冲突?”
  • 考察点:法律推理
  • 得分项:条款节点,关系为“引用”“修改”“冲突”;检索两条条款之间路径
  • 回答:提取法律条文中的条款,及条款之间的关系(如“替代”“补充”“冲突”)。用户询问冲突时,图谱中若存在直接冲突边,则返回;否则检查间接路径(如A通过解释B与C冲突)。LLM整理冲突依据。
  1. 【⭐⭐】学术文献问答:GraphRAG如何帮助回答“这篇论文的方法受哪些之前工作影响?”
  • 考察点:学术知识图谱
  • 得分项:论文-引用-方法节点;检索引用路径和共现方法
  • 回答:构建论文节点,以及论文与方法实体(如“Transformer”)的关系(“提出”“改进”)。用户问方法受何影响,先定位论文的方法节点,然后检索通过引用链连接到早期论文的方法。LLM可以生成引用谱系图描述。
  1. 【⭐⭐】电商客服:用户问“这个手机和那个手机有什么不同?”GraphRAG如何处理?
  • 考察点:比较问答
  • 得分项:商品属性图谱;检索两个手机实体的属性子图,做差异对比
  • 回答:图谱存储手机实体及其属性边(如“内存”“价格”“颜色”)。检索两个手机子图,提取共有属性和差异属性。将差异部分送LLM生成比较语句,如“A手机比B手机内存大,但价格更高”。可附加常识。
  1. 【⭐⭐】旅游规划场景:用户问“从北京出发,想去西安和成都,有什么路线推荐?”
  • 考察点:路径规划
  • 得分项:城市节点,交通方式边;计算路径或推荐经过城市
  • 回答:知识图谱包含城市节点,以及高铁、飞机等交通关系(带有时间/费用)。检索北京到西安再到成都的多条路径,选择最优路径(时间或费用)。LLM解释路线并提供景点推荐,可结合其他属性。
  1. 【⭐⭐】企业知识库场景:GraphRAG如何回答“上次项目失败的复盘结论是什么?”
  • 考察点:内部知识管理
  • 得分项:项目节点与复盘文档、结论的关联;检索项目相关结论
  • 回答:构建项目节点,关联到复盘文档节点,文档节点再关联到结论节点。用户询问特定项目的复盘结论,通过项目节点找到文档,再找到结论。LLM从结论节点中抽取文本生成答案。如果结论节点缺失,可让LLM直接总结文档内容。
  1. 【⭐⭐】社交媒体分析:如何利用GraphRAG识别虚假信息传播路径?
  • 考察点:传播分析
  • 得分项:用户-转发性,内容节点;检索传播关键节点
  • 回答:构建用户节点、帖子节点,转发关系。给定一则虚假帖子,检索其传播树,找出高影响力用户或中间节点。LLM可以描述传播路径并识别可能的源头或关键扩散者。
  1. 【⭐⭐】物流调度:用GraphRAG回答“从仓库A到客户B的最优路径考虑实时交通?”
  • 考察点:实时图
  • 得分项:动态边权重(交通拥堵);需要实时更新和最短路径算法
  • 回答:图谱存储路段节点,边权重(距离、时间)。实时交通数据作为边权重动态更新。查询时运行Dijkstra算法找最短路径。LLM不参与路径计算,但将路径转换为自然语言指导并附加时间估计。
  1. 【⭐⭐】游戏NPC对话:如何利用GraphRAG让NPC回答游戏世界观问题?
  • 考察点:娱乐应用
  • 得分项:游戏实体关系图谱;NPC结合玩家问句检索子图生成角色扮演回答
  • 回答:预先构建游戏中的角色、地点、事件、物品关系。玩家问“铁匠铺在哪里”,检索当前场景或全局的铁匠铺节点,返回位置。LLM以NPC口吻回答,例如“沿着河边走,铁匠铺在红房子旁边”。
  1. 【⭐⭐】工业制造:设备故障预测问答系统,GraphRAG如何集成传感器数据?
  • 考察点:时序+图
  • 得分项:设备节点,传感器节点采集数值,异常事件触发检索
  • 回答:图谱中设备节点连接传感器节点,传感器具有实时值属性。当传感器值超过阈值,产生“异常”边指向故障模式。用户问“什么原因导致最近停机”,检索异常事件子图,LLM结合历史维修记录生成根因分析。
  1. 【⭐⭐】教育领域:构建学科知识图谱,GraphRAG回答“勾股定理有哪些证明方法?”
  • 考察点:学科知识
  • 得分项:定理节点与证明方法节点关联;多跳展开
  • 回答:图谱包含定理节点(勾股定理),证明方法节点(面积法、相似三角形等),及关联关系“有证明”。检索勾股定理的所有证明方法节点,LLM列出并简要说明每个方法的步骤或特点。

模块八:开放思路与设计题(96-100题)

  1. 【⭐⭐⭐】如果从零开始设计一个GraphRAG系统,要求支持千万级实体和百亿边,你会如何选型并说明架构?
  • 考察点:宏观架构能力
  • 得分项:分布式图数据库(如JanusGraph+Nebula),离线抽取Spark+NLP,在线服务K8s,LLM混合开源模型
  • 回答:存储:NebulaGraph(分布式属性图,支持高吞吐)。离线处理:使用Spark NLP抽取实体关系,写入Nebula。在线:Go或Java服务接收查询,用图数据库执行检索(2跳内),结果序列化;LLM采用vLLM部署Llama3-70B。缓存热点子图到Redis。监控用Prometheus。成本估算:节点数可根据业务预估。
  1. 【⭐⭐⭐】假设有一个已经存在的向量RAG系统,如何渐进式地迁移到GraphRAG?
  • 考察点:迁移策略
  • 得分项:双系统跑一段时间,A/B测试;先对高频Query构建图谱;逐步替换
  • 回答:步骤:1)离线分析历史查询,提取高频实体和关系,构建第一版图谱;2)修改RAG Pipeline,增加并行图检索模块,融合结果作为A/B实验;3)对效果提升明显的领域,完全迁移,其他领域保留向量;4)逐步扩大图谱范围,最终统一。同时保留向量作为兜底。
  1. 【⭐⭐⭐】请提出一种衡量GraphRAG系统“可解释性”的定量指标。
  • 考察点:评估创新
  • 得分项:例如“证据路径覆盖率”、“用户可理解度评分”
  • 回答:可以定义“解释忠实度”:由人工或LLM评估生成的解释中涉及的实体和关系有多少出现在检索子图中。另一指标“路径紧凑度”:答案依赖的路径长度与最短路径之比。还可以做用户实验打分。或者设计“反事实敏感性”:删除关键边后答案改变的概率。
  1. 【⭐⭐⭐】GraphRAG如何抵抗对抗性查询,比如故意加入噪音实体误导检索?
  • 考察点:安全健壮
  • 得分项:实体链接置信度过滤、子图多路径验证、LLM自我矛盾检测
  • 回答:对抗查询插入无关实体可能导致检索出错误子图。防御:1)实体链接时设定低置信度阈值,忽略不可靠实体;2)检索时要求每个实体与查询主题语义相关(通过向量相似度);3)在子图中检查实体的连接性,孤立节点可能为噪音;4)LLM生成答案时要求评估子图是否与问题一致。
  1. 【⭐⭐⭐】如果LLM成本极高,如何优化GraphRAG使得对LLM调用次数最少但效果不下降?
  • 考察点:成本控制
  • 得分项:缓存答案、答案模板、用小模型做路由、预生成常见问题摘要
  • 回答:1)对常见问题,直接缓存答案;2)对于可结构化回答的问题(如“A的B属性是什么”),用图查询直接返回文本,不调用LLM;3)用小模型(如7B)先对简单问题回答,复杂问题才路由到大模型;4)离线预计算社区摘要或重要子图描述,作为LLM的few-shot示例,减少在线调用;5)批量合并相似查询。