搜索数据构建
本文详细介绍使用数据搜索建库模板实现搜索数据的构建,帮助您快速搭建面向数据搜索的数据处理流程,实现从原始数据到高质量知识库的全流程自动化构建。同时围绕搜索数据构建的整体流程与核心模块展开说明,为知识库建设与数据搜索服务落地提供完整的实施指引。
概览
您可通过创建数据管道,选择数据搜索建库模板实现搜索数据的构建。 该构建流程由多个专业化算子协同完成,整体覆盖从原始数据治理到最终知识入库的全链路操作,主要流程如下:
- 通过PDF解析算子对PDF格式文件进行解析,完成原始数据的初步采集与整理。
- 通过数据标准化算子对原始数据进行规范化处理。
- 通过数据切片算子按语义与长度规则完成文本切分。
- 通过知识增强算子对切片内容进行语义补全与质量提升。
- 通过知识合并算子实现多源知识的去重与融合。
- 通过向量化算子将标准化知识转换为语义向量。
- 最终由本体写入算子将结构化知识与向量数据持久化至本体库,形成完整可用的知识体系。
前提条件
当前账号已拥有数据搜索权限。
算子功能及配置详情
系统提供PDF解析、数据清洗、数据切片、知识增强、知识合并、向量转化、本体写入等一系列核心功能,各算子之间分工明确、协同配合,共同完成从原始数据接入到最终知识构建的全流程处理。本节将对上述各算子的关键功能进行逐一说明。
PDF解析算子
PDF解析算子用于对PDF格式的文档进行结构化解析,可提取文档中的文本、图片、表格等内容,并转化为平台可识别与处理的标准化数据格式,为后续数据清洗、加工提供基础数据源。详细配置说明请参见表 1。
表1 PDF解析算子配置说明
| 配置项 | 说明 |
|---|---|
| 分析服务 | "内容理解" 模块中的 PDF 解析服务之一 |
| 输入列名 | media_reference (媒体的元信息列之一) |
| 输出列名 | content(用于存放 PDF 解析后的内容) |
数据标准化
数据清洗算子用于对原始数据及文档解析结果进行规范化处理,支持去除冗余信息、修正格式异常、过滤无效数据、补全缺失字段等操作,保障后续数据处理环节的质量与稳定性。详细配置说明请参见表2。
表2 数据清洗算子配置说明
| 配置项 | 说明 |
|---|---|
| 展开数组(ExplodeArray) | 包含表达式、保留空数组或null数据、输出列名称配置项。 |
| 表达式 | chunks |
| 保留空数组或null数组 | true |
| 输出列名称 | chunk (展开的独立元素(元素包含单个切片以及相关的元信息)) |
| 结构体扁平化(flatten_struct) | 包含输入列、最大解析深度、列名称前缀、分隔符配置项。 |
| 输入列 | chunk |
| 最大解析深度 | 1 |
| 列名称前缀 | chunk |
| 分隔符 | _ |
| 选择列(select_columns) | 包含列字段配置项。 |
| 列字段 | chunk_chunk_idchunk_chunk_idxchunk_chunk_contentfile_name |
| 重命名列(rename_columns) | 包含列选择、重命名为配置项。 |
| 列选择 | chunk_chunk_idchunk_chunk_idxchunk_chunk_content |
| 重命名为 | chunk_idchunk_idxcontent |
| 常量 | 包含常量、输出列名称配置项。 |
| 常量 | 空 |
| 输出列名称 | parent_id (为了方便后续和另外一路数据做union) |
| 常量 | 包含常量、输出列名称配置项。 |
| 常量 | chunk (表示这一行是切片) |
| 输出列名称 | type |
| 十六进制编码(Hex) | 包含表达式、输出列名称配置项。 |
| 表达式 | file_name |
| 输出列名称 | doc_id (构造 doc_id) |
| 选择列(select_columns) | 包含列字段配置项。 |
| 列字段 | chunk_id (切片或者句子id) chunk_idx (切片在所属文档中的 index) content (切片或者句子的内容) parent_id(切片的父id为空,句子的父id为所属的切片id) type (chunk 表示切片,sentence 表示句子) doc_id (切片或者句子所属的文档 id) |
数据切片算子
数据切片算子按照预设规则对清洗后的文本数据进行分段切分,支持按段落、句子长度、语义边界等策略生成粒度合适的数据片段,为后续向量化与知识构建提供标准化输入单元。详细配置说明请参见表3。
表3 数据切片算子配置说明
| 配置项 | 说明 |
|---|---|
| 文本切分(PbTextChunker) | 包含内容、输入类型、块大小、重叠大小、分隔符、文件类型、输出列名称配置项。 |
| 内容 | content (上游 PDF 解析出来的内容) |
| 输入类型 | content (表示输入是一段内容) |
| 块大小 | 600 (字符) |
| 重叠大小 | 0 (字符) |
| 分隔符 | 空 (默认使用的分隔符 ["。", "?", "?", "!", "……", ","]) |
| 文件类型 | md (输入的内容格式为 markdown) |
| 输出列名称 | chunks (存放切片列表) |
| 选择列(select_columns) | 包含列字段配置项。 |
| 列字段 | media_reference、path、file_name、primary_format、last_modified、chunks |
知识增强算子
知识增强算子基于业务规则与外部知识对切片后的数据进行语义扩充与质量提升,可实现关键词提取、实体补全、关系补充、语义归一化等能力,增强知识的完整性与可用性。详细配置说明请参见表4。
表4 知识增强算子配置说明
| 配置项 | 说明 |
|---|---|
| 句子切分(PbTextSentenceChunker) | chunk、分隔符、输出列名称配置项。 |
| chunk | content (上游的切片的内容) |
| 分隔符 | 空 (默认使用的分隔符 ["。", "?", "?", "!", "……", ","]) |
| 输出列名称 | sentences (句子列表) |
| 展开数组(ExplodeArray) | 包含表达式、保留空数组或null数据、输出列名称配置项。 |
| 表达式 | sentences (句子列表) |
| 保留空数组或null数组 | true |
| 输出列名称 | sentence(展开的独立元素(元素包含单个句子以及相关的元信息)) |
| 结构体扁平化(flatten_struct) | 包含输入列、最大解析深度、列名称前缀、分隔符配置项。 |
| 输入列 | sentence |
| 最大解析深度 | 1 |
| 列名称前缀 | s |
| 分隔符 | _ |
| 选择列(select_columns) | 包含列字段配置项。 |
| 列字段 | chunk_ids_types_sentence_contents_sentence_idxdoc_id |
| 重命名列(rename_columns) | 包含列选择、重命名为配置项。 |
| 列选择 | chunk_ids_types_sentence_content |
| 重命名为 | parent_idtypecontent |
| 常量 | 包含常量、输出列名称配置项。 |
| 常量 | -1 |
| 输出列名称 | chunk_idx (为了方便后续和另外一路数据做union) |
| 连接字符串(Concat) | 包含分隔符、表达式列表、输出列名称配置项。 |
| 分隔符 | - |
| 表达式列表 | parent_ids_sentence_idx |
| 输出列名称 | chunk_id (构造句子的 chunk_id,也方便后续和另外一路数据做union) |
| 选择列(select_columns) | 包含列字段配置项。 |
| 列字段 | chunk_idchunk_idxdoc_idcontenttypeparent_id |
知识合并算子
知识合并算子用于对多来源、多切片产生的同类知识进行去重、融合与归并,结合知识增强与数据标准化能力,支持按位置或列名对知识数据执行Union合并操作,消除知识冗余与冲突,形成结构统一、逻辑一致的标准化知识集合,提升后续检索与应用效果。详细配置说明请参见表5。
表5 知识合并算子配置说明
| 配置项 | 说明 |
|---|---|
| Union方式 | 根据列名做union,不带去重功能 |
| Union数据 | 数据增强数据标准化 |
向量化算子
向量化算子将处理完成的文本知识转化为向量表征,通过嵌入模型生成高维语义向量,为相似性检索、聚类分析、智能匹配等场景提供底层技术支撑。详细配置说明请参见表6。
表6 向量化算子配置说明
| 配置项 | 说明 |
|---|---|
| 文本嵌入(TextEmbedding) | 包含表达式、模型、输出列名称配置项。 |
| 表达式 | content |
| 模型 | text-emded_7b_bf16 |
| 输出列名称 | embedding |
| 常量 | 包含常量、输出列名称配置项。 |
| 常量 | text-embed_7b_bf16 |
| 输出列名称 | embedding_basemodel (存放向量模型名称) |
本体写入算子
本体写入算子负责将最终生成的结构化知识与向量数据写入本体库,完成本体实例的入库、更新与管理,实现知识的持久化存储与统一调度。注意:使用前需完成本体创建,否则将无法执行写入操作。详情配置说明请参见表7。
表7 本体写入配置说明
| 配置项 | 说明 |
|---|---|
| Object Type | xxxx (用户需要在 "本体管理" 模块创建 object_type) |
| 写入模式 | 覆盖(建议是覆盖) |
| 输出字段 | chunk_id chunk_idx doc_id type parent_id content embedding embedding_basemodel |
用户在“本体管理”模块中创建Object_type参考。
评价此篇文章
