网站LogoDISHEN BUDDHA'S TEACHINGS

网站架构地图

系统架构、搜索规则与 Base44 平台限制说明

网站架构概览
核心实体与页面结构

核心数据实体

Video (视频)

  • • youtube_id (唯一键)
  • • title, category, date
  • • is_internal (内部/公开)
  • • tags, description

TranscriptSegment (字幕)

  • • video_key (关联 youtube_id)
  • • start_sec, end_sec, text
  • • lang (语言标识)
  • • is_internal (继承自视频)
  • • import_batch_id (批次 ID)

User (用户)

  • • email, full_name
  • • role (admin / user)
  • • 内置实体,自动创建

主要页面

首页 (Home)
视频库 (VideoLibrary)
字幕检索 (TranscriptSearch)
视频详情 (VideoDetail)
视频管理 (VideoManagement) - 管理员
内部入口 (InternalPortal) - 已移除
搜索功能规则
字幕检索的实现逻辑

前端搜索 (TranscriptSearch 页面)

  • • 使用 base44.entities.TranscriptSegment.filter()
  • 不支持文本模糊搜索或全文检索
  • • 只能基于精确字段匹配:{ video_key, is_internal }
  • • 实际文本搜索在前端通过 JavaScript 过滤完成:
    segments.filter(s => 
      s.text.toLowerCase().includes(searchQuery.toLowerCase())
    )
限制:Base44 平台不支持数据库级别的文本模糊搜索(如 SQL 的 LIKE、MongoDB 的 $regex),所有文本搜索需在前端处理。
批量删除规则与限制
Base44 平台的 deleteMany 使用规范

✅ 支持的删除方式

基于公共字段条件
// ✅ 正确:基于字段条件
await base44.entities.TranscriptSegment.deleteMany({
  video_key: "abc123",
  lang: "zh",
  is_internal: true
});

// ✅ 循环批量删除大数据集
while (true) {
  const result = await deleteMany({ video_key, lang });
  if (result.deleted === 0) break;
}

❌ 不支持的操作符

MongoDB 风格的查询操作符
// ❌ 错误:不支持 $in
await deleteMany({ id: { $in: [1, 2, 3] } });

// ❌ 错误:不支持 $or
await deleteMany({ $or: [{ lang: "zh" }, { lang: "en" }] });

// ❌ 错误:不支持 $gt, $lt 等
await deleteMany({ start_sec: { $gt: 100 } });

// ❌ 错误:不支持 $regex
await deleteMany({ text: { $regex: /关键词/ } });

实际应用场景

后端函数:bulkDeleteTranscripts.js

  • • 接收参数:video_id, lang, is_internal
  • • 构建条件:where = { video_key, lang }
  • • 循环删除:每次调用 deleteMany(where) 直到无记录
  • • 支持预览模式:preview: true 仅统计不删除
性能建议:
  • • 记录数 < 5,000:直接单次 deleteMany 即可
  • • 记录数 > 5,000:使用循环分批删除(每批自动处理)
  • • 删除条件必须基于已建立索引的字段(如 video_key)以提升性能
Base44 平台核心限制
开发时必须了解的约束条件
查询操作符限制

不支持 MongoDB 风格的操作符($in, $or, $gt, $lt, $gte, $lte, $ne, $regex 等)

文本搜索限制

数据库层面不支持全文检索或模糊搜索,需在前端 JavaScript 中实现文本过滤

支持的查询方式

仅支持精确字段匹配,如 { video_key: "abc", lang: "zh" }

批量操作策略

使用公共字段条件 + 循环调用 deleteMany,每次自动处理一批直到全部删除

© 2026 Dishen Buddha's Teachings · Spreading wisdom, serving all