赛道 B · 6 个任务,任选一个
从文档到 演示
选择一篇 Apache Doris 功能文档,在本地 Doris 中运行,将其补充为逐步演示。您的 Pull Request 会将演示加入 doris.apache.org 对应页面。
- 每个任务30–60分钟
- 新手友好
- SQL 与浏览器
- 提交文档 PR
遇到问题? 可在 #dev 提问,频道位于 Apache Doris Slack。维护者和其他参与者会提供帮助。
准备环境
了解赛道 B 流程,启动集群,并 Fork 文档仓库。
赛道 B 如何进行
一篇功能文档、一份演示、一个 Pull Request。
这些页面是新用户的起点。从零运行最容易发现缺漏,而一份能在空集群上从头运行到尾的演示,能够验证功能是否可用。您的演示将直接加入文档。
按文档操作。 打开任务对应页面,在本地 Doris 逐条原样运行所有示例,记录失败、输出不同或含义不清的地方。
构建演示。 从空集群开始验证任务清单的每一点,按顺序运行,保存每条语句的真实输出。
补充到文档。 在两份页面的 Quick start 之后增加 Step-by-step demo(逐步演示) 章节,并在同一 Pull Request 中修复发现的问题。
提交 Pull Request 到
apache/doris-website,这就是您的任务提交,参见 提交并领取徽章.
代码面板展示当前任务的模板
开始之前
docker pull apache/doris:all-in-one-4.1.3docker run -d --name doris -p 9030:9030 -p 8030:8030 -p 8040:8040 apache/doris:all-in-one-4.1.3docker exec -it doris mysql -uroot -h127.0.0.1 -P9030git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-github-id>/doris-website.git && cd doris-website && git sparse-checkout set docs/key-features versioned_docs/version-4.x/key-features
- 主机
- 127.0.0.1
- 端口
- 9030
- 用户
- root无密码
- 数据库
- 自行创建,例如 fts_demo
选择任务
6 篇功能文档,任选一篇;提前完成后可继续选择其他任务,每个任务独立提交 PR。
全文检索与 BM25
演示需验证
页面的运算符表列出了全部 MATCH_* 形式。直接选择 score() 并按其排序;若在它外面包裹表达式,例如 ROUND(score()),查询会被拒绝。
向量检索
从这里开始向量索引
演示需验证
每个向量,包括查询向量,都必须恰好包含 dim 个数值,否则查询会因维度不匹配而失败。
混合检索
演示需验证
score() 不能出现在向量排序查询的 SELECT 中,也不能放入 ROW_NUMBER()中;应在外层查询对原始 score() 结果排名,做法见 RRF 文档。
VARIANT
从这里开始VARIANT 数据类型
演示需验证
variant_type(payload) 展示 Doris 为单行推断的路径和类型,可与 DESC 输出对照。
Unique Key 与 Sequence 列
从这里开始Unique Key 模型
演示需验证
分别用一条 INSERT 和三条独立 INSERT 执行三次写入,结果应保持一致。
Stream Load
从这里开始Stream Load 导入
演示需验证
将导入请求发送到 FE 的 127.0.0.1:8030 ,使用 curl --location-trusted,FE 会将请求重定向至 BE,All-in-One 容器同时提供两个端口。
完成并提交
了解 PR 需要包含的内容、提交方式及徽章领取。
Pull Request 应包含什么
在以下仓库提交一个 Pull Request: apache/doris-website,即完成任务提交。
- 演示章节
## Step-by-step demo放在 Quick start 之后,按检查清单逐步展开:先写 SQL 代码块,再给出 Expected result(预期结果) 及真实输出。演示从空集群开始,因此需要自行创建数据库。 - 两份文档将相同修改提交到
docs/key-features/<page>.mdx和versioned_docs/version-4.x/key-features/<page>.mdx。本任务要求更新英文页面,其他语言的翻译独立维护。 - 问题修复在同一 PR 中修复页面其他位置发现的错误;若无法确定是否为错误,请先写入 PR 说明。
- PR 说明使用仓库的 PR 模板,说明 dev 与 4.x 英文页面的更新,并注明任务名称,例如
Apache Doris Hackathon · Track B · B1.
以下任务的模板:
## Step-by-step demo {#demo}One or two sentences: what this demo shows, from an empty cluster.### 1. A table with an inverted index (english parser, phrase support) on a text column```sqlCREATE DATABASE IF NOT EXISTS fts_demo;USE fts_demo;CREATE TABLE … ;```### 2. MATCH_ANY vs MATCH_ALL on the same words, with different row counts```sqlSELECT … ;```**Expected result**```+----+-------+| id | title |+----+-------+```### 3. A MATCH_PHRASE query that only matches when the words are adjacent```sqlSELECT … ;```**Expected result**```+----+-------+| id | title |+----+-------+```### 4. BM25 ranking: score() with ORDER BY … DESC LIMIT n, and why the top row wins```sqlSELECT … ;```**Expected result**```+----+-------+| id | title |+----+-------+```[docs] Add a step-by-step demo to the Full-text Search page## Versions- [x] dev- [x] 4.x- [ ] 3.x- [ ] 2.1 or older (not covered by version/language sync gate)## Languages- [ ] Chinese- [x] English(Keep the Docs Checklist from the template and tick what applies.)Apache Doris Hackathon · Track B · B1 Full-text Search + BM25This task updates the English source pages; both copies get the same change:- docs/key-features/full-text-search.mdx- versioned_docs/version-4.x/key-features/full-text-search.mdx## What this PR changes- Adds a "Step-by-step demo" section after Quick start that shows: …- Fixes on the page: … (or "none")## What I found in the docs- Where: … / The page says: … / What happened: … / What it should say: …## ValidationRan every statement from an empty cluster on apache/doris:all-in-one-4.1.3; every Expected result is the real output.代码面板:最近阅读任务对应的模板
完成标准
您的检查清单提交并领取徽章
参与 → 提交 → 领取徽章。
提交您的 Pull Request 到 apache/doris-website,从您 Fork 仓库的分支发起。PR 本身就是任务提交,无需另行填写内容。
分享成果 到
#dev( Apache Doris Slack):附上 Pull Request 或仓库链接,以及截图或简短演示。问题交流、成果提交和徽章领取都在该频道处理。
每位参与任务的开发者都可获得 Apache Doris 贡献者徽章,无需先有 PR 合入 Doris。任务没有截止日期,可按自己的节奏完成。可以组队,也可独立参与;请将每位成员的 GitHub ID 写入 Pull Request 说明.
进阶目标
再选一个任务。 每个完成的任务独立提交一个 PR。
继续验证快速入门之外的内容。 运行页面链接的较长示例,例如建表指南和 SQL 手册中的示例,这些内容通常较少得到验证。
审阅其他赛道 B 的 Pull Request。 在自己的 Doris 上运行演示,并在评审中说明实际结果。
故障排查与参考资料
| Symptom | Fix |
|---|---|
docker: command not found 出现在 macOS 上 | 启动 Docker Desktop;若已运行,请为 CLI 创建链接: sudo ln -s /Applications/Docker.app/Contents/Resources/bin/docker /usr/local/bin/docker |
error getting credentials 出现在拉取镜像时 | 请移除 credsStore 字段,所在文件为 ~/.docker/config.json (仅适用于本地开发) |
port is already allocated | 9030、8030 或 8040 已被其他程序占用,常见原因是另一个 Doris 实例。先查看运行中的容器(docker ps),再停止冲突的服务;也可映射其他主机端口,例如 -p 19030:9030,然后连接 19030 |
The container name "/doris" is already in use | 此前已启动过该容器,可执行: docker start doris。如需从头开始,请执行 docker rm -f doris ,此操作会删除容器数据 |
容器退出,或始终未变为 (healthy) | 请查看 docker logs doris。通常是内存不足,请在 Docker Desktop 的 Settings → Resources 中分配至少 6 GB。Apple Silicon 设备不要添加 --platform linux/amd64 |
permission denied: ./doris.sh | 解压工具可能丢失了可执行权限,请执行: chmod +x doris.sh,或运行 bash doris.sh start |
Current database is not set | 请先执行 USE hackathon; ,或在连接时使用 -Dhackathon |
score() function requires WHERE clause with MATCH function, ORDER BY and LIMIT | 请添加 MATCH_* 谓词、 ORDER BY score() DESC 以及 LIMIT,并保持 score() 不被其他表达式包裹,参见前文说明 |
| PR 的 Build Check 失败 | 查看检查日志。常见原因是 MDX 标签未闭合,或正文中直接使用了 { 或 < 。放入围栏代码块后则不受此限制。 |
B6: curl 没有输出,或打印 307 | 请添加 --location-trusted,因为 FE 会将导入请求重定向至 BE,curl 需要携带凭证跟随重定向。 |
B6: Label Already Exists | 重复运行时出现该结果属于预期:同一 Label 最多导入一次。重新导入请使用新 Label。 |
| 超过 10 分钟仍未解决 | 可在 #dev 频道提问,位于 Apache Doris Slack |
参考资料
全文检索向量索引混合检索VARIANT 数据类型Unique Key 模型Stream Load 导入倒数排名融合文档贡献指南文档格式规范Pull Request 指南
Apache Doris 黑客松
