トラック B · 6 タスクから 1 つ選択
ドキュメントから デモへ
Apache Doris の機能ドキュメントを 1 ページ選び、ローカルの Doris で実行して手順付きのデモに仕上げます。プルリクエストで doris.apache.org の該当ページにデモを追加します。
- 1 タスク 30~60 分
- 初心者向け
- SQL とブラウザー
- ドキュメント PR を作成
困ったときは? 質問はこちら: #dev 参加先: Apache Doris Slack。メンテナーやほかの参加者がサポートします。
環境を準備
トラック B の進め方、実行中のクラスター、ドキュメントのフォークを用意します。
トラック B の進め方
機能ページ 1 つ、デモ 1 つ、プルリクエスト 1 つ。
Doris の新しいユーザーは皆これらのページから始めます。ゼロから実行すれば不足にすぐ気付けます。空のクラスターから最後まで実行できるデモは、機能が動くことの確かな証拠になります。作成したデモはページ本体に掲載されます。
ページの手順に従う。 担当タスクのドキュメントを開き、ローカルの Doris ですべての例を記載どおりに実行します。失敗した点、異なる出力、わかりにくい点を記録してください。
デモを作る。 空のクラスターから始め、タスクのチェックリストをすべて確認します。上から順に実行し、各文の実際の出力を保存してください。
ページに追加する。 次の 手順付きデモ セクションを、両方のページの Quick start の直後に追加します。見つけた問題も同じプルリクエストで修正してください。
プルリクエストを作成 対象:
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 の機能ページから選びます。早く終わったら別のタスクにも挑戦してください。タスクごとに別のプルリクエストを作成します。
全文検索 + BM25
デモで確認すること
ページの演算子一覧に、すべての次の形式が載っています: MATCH_* 。次を選択し、 score() そのまま ORDER BY に使います。次のように式で包んでソートすると、 ROUND(score())拒否されます。
ベクトル検索
開始地点ベクトルインデックス
デモで確認すること
すべてのベクトルには正確に次の個数の dim 数値が必要です。クエリベクトルも同様で、合わない場合は次元エラーになります。
ハイブリッド検索
開始地点ハイブリッド検索+ Reciprocal Rank Fusion
デモで確認すること
score() はベクトルで順位付けするクエリでは選択できず、次の内部にも置けません: ROW_NUMBER():加工していない次の値を順位付けし、 score() 外側のクエリで処理します。RRF のページと同じ方法です。
VARIANT
開始地点VARIANT データ型
デモで確認すること
variant_type(payload) は 1 行について Doris が推論したパスと型を表示します。次の出力と比較してください: DESC の出力。
Unique Key + Sequence Column
開始地点Unique Key
デモで確認すること
3 回の書き込みを 1 つの INSERT として、また 3 つの個別 INSERT として実行します。結果が変わらないことを確認してください。
Stream Load
開始地点Stream Load
デモで確認すること
次の FE にロードを送ります: 127.0.0.1:8030 ともに歩む curl --location-trusted。FE が BE にリダイレクトし、単一コンテナーが両ポートで応答します。
完成させる
プルリクエストに含めるもの、提出方法、バッジについて。
プルリクエストで追加するもの
次のリポジトリに 1 つのプルリクエストを作成: apache/doris-website。それが提出物です。
- デモセクション
## Step-by-step demoを Quick start の直後に追加します。チェックリストの 1 項目につき 1 ステップとし、SQL ブロックの後に次を掲載: 期待する結果 として実際の出力を記載します。空のクラスターから始めるため、デモ内でデータベースも作成します。 - 両方のページ同じ変更を次の両方に反映:
docs/key-features/<page>.mdxおよびversioned_docs/version-4.x/key-features/<page>.mdx。このタスクでは英語ページを更新します。翻訳は別途保守されます。 - 修正ページのほかの場所で見つけた問題も同じプルリクエストで修正します。誤りか判断できない場合は、説明欄に記載してください。
- 説明リポジトリのプルリクエストテンプレート(dev + 4.x、英語)を使い、タスク名を 1 行で記載します。例:
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.パネル:最後に読んだタスクのテンプレート
完了条件
チェックリスト提出してバッジを獲得
参加 → 提出 → バッジを獲得。
プルリクエストを作成 対象: apache/doris-website。ご自身のフォークのブランチから作成します。プルリクエストが提出物なので、ほかの入力は不要です。
共有する 共有先:
#dev参加先: Apache Doris Slack:プルリクエストまたはリポジトリへのリンクと、スクリーンショットまたは短いデモを共有します。質問、提出、バッジの案内はすべてこちらで行います。
タスクに参加した方全員に次のバッジを贈ります: Apache Doris Contributor バッジ。Doris 本体へのプルリクエストがマージされている必要はありません。締め切りはないので、ご自身のペースで進めてください。チーム参加も可能ですが必須ではありません。全員の GitHub ID を次に記載してください: プルリクエストの説明.
追加の挑戦
2 つ目のタスクを選ぶ。 完了したタスクごとに、別のプルリクエストを作成します。
クイックスタートの先へ進む。 テーブル設計や SQL マニュアルなど、ページからリンクされている長い例も実行してください。これらは確認される機会が少ない部分です。
ほかのトラック B のプルリクエストをレビューする。 自分の 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 | 別のプロセス(多くは別の Doris)が 9030、8030、8040 のいずれかを使っています。実行中のコンテナーを確認してください(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 に 6 GB 以上を割り当ててください(Settings → Resources)。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() を式で包まないでください(上記の落とし穴を参照) |
| プルリクエストの Build Check が失敗する | チェックのログを開いてください。多くは MDX が原因です。閉じていないタグや、文章中にそのまま書かれた { または < を確認してください。フェンス付きコードブロック内なら問題ありません。 |
B6: curl が何も表示しない、または次を表示する: 307 | 追加: --location-trusted:FE はロードを BE にリダイレクトするため、curl で認証情報を付けたまま追従する必要があります |
B6: Label Already Exists | 再実行時は正常な動作です。同じラベルでロードできるのは 1 回だけです。再ロードには新しいラベルを使ってください |
| 10 分以上解決できない場合 | 投稿先: #dev 参加先: Apache Doris Slack |
参考資料
全文検索ベクトルインデックスハイブリッド検索VARIANT データ型Unique KeyStream LoadReciprocal Rank Fusionドキュメント貢献ガイドドキュメント形式の仕様プルリクエストガイド
Apache Doris Hackathon
