트랙 B · 6 과제 중 하나 선택
문서에서 데모로
Apache Doris 기능 문서 하나를 골라 로컬 Doris에서 실행하고 단계별 데모로 만드세요. 풀 리퀘스트를 통해 doris.apache.org의 해당 페이지에 데모를 추가합니다.
- 과제당 30~60분
- 입문자 환영
- SQL 및 브라우저
- 문서 PR로 마무리
막히는 부분이 있나요? 질문할 곳: #dev 참여할 곳: Apache Doris Slack. 유지 관리자와 다른 참가자가 도와드립니다.
환경 준비
트랙 B 진행 방식, 실행 중인 클러스터 및 문서 포크를 준비합니다.
트랙 B 진행 방식
기능 페이지 하나, 데모 하나, 풀 리퀘스트 하나.
새로운 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() 그대로 정렬하세요. 다음처럼 식으로 감싸 정렬하면 ROUND(score()), 거부됩니다.
벡터 검색
시작점벡터 인덱스
데모에서 입증할 내용
모든 벡터에는 정확히 다음 개수의 dim 숫자가 필요합니다. 쿼리 벡터도 마찬가지이며 맞지 않으면 차원 오류로 실패합니다.
하이브리드 검색
시작점하이브리드 검색+ Reciprocal Rank Fusion
데모에서 입증할 내용
score() 는 벡터 순위 쿼리에서 선택할 수 없고 다음 안에 넣을 수도 없습니다: ROW_NUMBER(): 가공하지 않은 다음 값을 정렬하고 score() 바깥 쿼리에서 처리하세요. RRF 페이지와 같은 방식입니다.
VARIANT
데모에서 입증할 내용
variant_type(payload) 는 한 행에서 Doris가 추론한 경로와 타입을 표시합니다. 다음 결과와 비교하세요: DESC 출력.
Unique Key + Sequence Column
시작점Unique Key
데모에서 입증할 내용
세 번의 쓰기를 하나의 INSERT와 세 개의 별도 INSERT로 각각 실행하세요. 결과는 같아야 합니다.
Stream Load
시작점Stream Load
데모에서 입증할 내용
다음 FE로 적재 요청을 보내세요: 127.0.0.1:8030 함께하는 curl --location-trusted: FE가 BE로 리디렉션하며 올인원 컨테이너가 두 포트 모두에서 응답합니다.
완성하기
풀 리퀘스트에 포함할 내용, 제출 방법 및 배지 안내.
풀 리퀘스트에 추가할 내용
다음 저장소에 풀 리퀘스트 하나를 만듭니다: apache/doris-website, 이것이 제출물입니다.
- 데모 섹션
## Step-by-step demo을 Quick start 바로 뒤에 추가합니다. 체크리스트 항목마다 한 단계로 구성하고 SQL 블록 뒤에 다음을 적습니다: 예상 결과 에 실제 출력을 적습니다. 빈 클러스터에서 시작하므로 데모에서 데이터베이스도 생성합니다. - 두 페이지 모두동일한 변경을 다음 두 곳에 반영:
docs/key-features/<page>.mdx및versioned_docs/version-4.x/key-features/<page>.mdx. 이 과제에서는 영문 페이지를 수정합니다. 번역은 별도로 유지 관리됩니다. - 수정 사항페이지의 다른 곳에서 발견한 오류도 같은 풀 리퀘스트에서 수정하세요. 오류인지 확실하지 않다면 설명에 적으세요.
- 설명저장소의 풀 리퀘스트 템플릿(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.패널: 마지막으로 읽은 과제의 템플릿
완료 기준
체크리스트제출하고 배지 받기
참여 → 제출 → 배지 받기.
풀 리퀘스트 만들기 대상: apache/doris-website, 본인 포크의 브랜치에서 만드세요. 풀 리퀘스트가 제출물이므로 별도로 작성할 것은 없습니다.
공유하기 공유할 곳:
#dev참여할 곳: Apache Doris Slack: 풀 리퀘스트 또는 저장소 링크와 함께 스크린샷이나 짧은 데모를 공유하세요. 질문, 제출, 배지 관련 안내는 모두 이곳에서 진행됩니다.
과제에 참여하는 모든 분께 다음 배지를 드립니다: Apache Doris Contributor 배지. Doris 프로젝트에 병합된 풀 리퀘스트가 없어도 됩니다. 마감일이 없으니 필요한 만큼 시간을 쓰세요. 팀 참여도 가능하지만 필수는 아닙니다. 모든 팀원의 GitHub ID를 다음에 적어주세요: 풀 리퀘스트 설명.
추가 도전 과제
두 번째 과제 선택하기. 완료한 과제마다 별도의 풀 리퀘스트를 만드세요.
빠른 시작을 넘어 도전하기. 테이블 설계, 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 | 재실행 시 정상 동작입니다. 같은 레이블로는 한 번만 적재됩니다. 파일을 다시 적재하려면 새 레이블을 사용하세요 |
| 10분 이상 해결하지 못한 경우 | 게시할 곳: #dev 참여할 곳: Apache Doris Slack |
참고 자료
전문 검색벡터 인덱스하이브리드 검색VARIANT 데이터 타입Unique KeyStream LoadReciprocal Rank Fusion문서 기여 가이드문서 형식 명세풀 리퀘스트 가이드
Apache Doris 해커톤
