杠精派
派聪明
0/512

热门评论

liligox@foxmail.com 2025年11月11日 13:12
引用原文:ES 里怎么存的
@派聪明
点赞
回复1 取消回复
派聪明 2025年11月11日 13:12
根据参考资料,ElasticSearch(ES)中的存储结构如下: ### ES 存储方案(以 `knowledge_base` 索引为例): 1. **索引名称**:`knowledge_base` 2. **核心字段**: - **`textContent`**: - 存储文档分块后的原始文本内容(如 PDF、Word 解析后的文本)。 - 使用 **IK 分词器** 进行关键词分词,支持关键词检索(如 `match` 查询)。 - **`vector`**: - 存储文本分块通过 **Embedding 模型**(如豆包/阿里向量模型)生成的**高维向量**(如 768 维)。 - 用于 **语义检索**(如 KNN 查找相似向量)。 ### 示例数据结构: ```json { "textContent": "企业级知识库管理系统支持多文档上传...", "vector": [0.12, -0.05, 0.**, ...], // 768维向量 "metadata": { // 其他元数据(如文件名、分块ID等) "fileId": "doc123", "chunkId": 1 } } ``` ### 存储逻辑: - **关键词检索**:对 `textContent` 字段使用 IK 分词器,倒排索引快速匹配关键词。 - **语义检索**:对 `vector` 字段计算向量相似度(如余弦相似度),召回相关文本分块。 - **混合检索**:结合关键词权重和向量相似度排序结果(参考资料4、5、17)。 > 注:该设计支持 RAG 流程,用户问题先转为向量,在 ES 中召回相似文本片段,再喂给 LLM 生成答案(参考资料7)。
点赞
回复 取消回复

4 条评论

sparks11 2025年11月28日 15:57
引用原文:KNN 算法在高维向量匹配时,会遇到维度灾难的问题。请你解释并解决。
@派聪明
点赞
回复 取消回复
满意的身影 2025年11月19日 20:42
引用原文:为什么用 minio 做文件存储
@派聪明
点赞
回复1 取消回复
派聪明 2025年11月19日 20:43
根据参考资料中的项目描述(如“派聪明”),选择 **MinIO 做文件存储**的核心原因如下: --- ### 1. **支持大文件上传与分片处理** - **问题背景**:原始方案(如直接调用大模型 API)存在文件大小**(如参考资料18提到“DeepSeek 因文件过大拒绝上传”)。 - **MinIO 的作用**: - **分片上传**:将大文件拆分为小块(如 5MB/片)并行上传(参考资料5、18),突破单文件大小**。 - **断点续传**:若上传中断(如网络故障),可从断点恢复,避免重复上传(参考资料5、14)。 - **合并优化**:所有分片上传完成后,MinIO 可在服务端高效合并文件(参考资料7)。 --- ### 2. **企业级高可*性与扩展性** - **分布式架构**:MinIO 基于 Amazon S3 兼协议,支持分布式集群部署,提供数据冗余和容错能力(参考资料18)。 - **性能优势**:专为对象存储优化,适合存储非结构化数据(如文档、图片),读写性能高(参考资料18)。 --- ### 3. **简化存储管理与成本** - **统一存储方案**:替代本地文件系统或复杂自研方案,降低运维成本(参考资料5)。 - **生态兼容性**:与 Kafka、ElasticSearch 等组件无缝集成(如文件处理流水线),支持通过 HTTP/S3 协议访问(参考资料7、18)。 --- ### 4. **实际场景验证** - 在“派聪明”项目中,MinIO 解决了企业用户上传大文档(如 10GB+ PDF)的需求,保障了知识库构建流程的稳定性(参考资料5、18、25)。 --- ### 总结 MinIO 的核心价值在于 **突破文件大小****、**保障上传可*性** 和 **提供企业级扩展能力**,尤其适合需要处理海量非结构化数据(如文档、媒体)的 RAG 系统。其分片上传、断点续传和分布式特性,是技术选型的关键考量。
点赞
回复 取消回复
Goat 2025年11月17日 10:31
引用原文:大文件也可以断点续传为什么要分片?
@派聪明
点赞
回复1 取消回复
派聪明 2025年11月17日 10:33
分片上传的核心价值在于**提升大文件传输的可*性、并行性和可控性**,即使支持断点续传,分片仍有以下关键优势: ### 1. **降低单次失败成本** - **问题场景**:若不拆分,10GB文件上传至99%时中断,需全部重传。 - **分片解决**:每个分片(如5MB)可独立重传,仅重传失败分片而非整个文件(**二面追问点)。 ### 2. **实现并行加速** - **技术原理**:将文件拆分为多个分片,通过多线程/多连接并发上传(如1000线程并发)。 - **效果**:总耗时 ≈ 单个最大分片耗时,而非累加所有分片时间(阿里健康一面设计题)。 ### 3. **突破单次传输**** - **存储层****:MinIO等对象存储对单文件大小/上传时长有**(如**二面技术选型)。 - **网络层****:避免因网络超时、代理**导致大上传失败(合合信息一面追问)。 ### 4. **精细化断点续传** - **状态管理**:记录每个分片上传状态(如Redis存储分片进度),断点后精准恢复。 - **校验机制**:分片可独立校验MD5,确保数据完整性(合合信息一面文件完整性保证)。 ### 5. **资源灵活调度** - **动态分片**:根据网络状况调整分片大小(弱网时减小分片,强网时增大)。 - **流量控制**:避免单连接占用过多带宽(顺丰科技二面吞吐量优化)。 ### 用户体验视角 - **小文件无需分片**:如<10MB文件直接上传更高效(美团测开一面质疑点)。 - **大文件体验优化**:分片上传可显示实时进度(如“已上传80%”),而断点续传仅能提示“已恢复”(用户感知差异)。 > **总结**:分片是**为解决大文件传输的工程难题**,断点续传是其副产品。两者结合实现**高可*、高并发、可中断恢复**的企业级文件上传能力(快手快star、**二面核心考点)。
点赞
回复 取消回复
liligox@foxmail.com 2025年11月11日 13:12
引用原文:ES 里怎么存的
@派聪明
点赞
回复1 取消回复
派聪明 2025年11月11日 13:12
根据参考资料,ElasticSearch(ES)中的存储结构如下: ### ES 存储方案(以 `knowledge_base` 索引为例): 1. **索引名称**:`knowledge_base` 2. **核心字段**: - **`textContent`**: - 存储文档分块后的原始文本内容(如 PDF、Word 解析后的文本)。 - 使用 **IK 分词器** 进行关键词分词,支持关键词检索(如 `match` 查询)。 - **`vector`**: - 存储文本分块通过 **Embedding 模型**(如豆包/阿里向量模型)生成的**高维向量**(如 768 维)。 - 用于 **语义检索**(如 KNN 查找相似向量)。 ### 示例数据结构: ```json { "textContent": "企业级知识库管理系统支持多文档上传...", "vector": [0.12, -0.05, 0.**, ...], // 768维向量 "metadata": { // 其他元数据(如文件名、分块ID等) "fileId": "doc123", "chunkId": 1 } } ``` ### 存储逻辑: - **关键词检索**:对 `textContent` 字段使用 IK 分词器,倒排索引快速匹配关键词。 - **语义检索**:对 `vector` 字段计算向量相似度(如余弦相似度),召回相关文本分块。 - **混合检索**:结合关键词权重和向量相似度排序结果(参考资料4、5、17)。 > 注:该设计支持 RAG 流程,用户问题先转为向量,在 ES 中召回相似文本片段,再喂给 LLM 生成答案(参考资料7)。
点赞
回复 取消回复

目录