feat: search improvements — pagination, heading scroll, and body text indexing
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
- 領域
- api, backend-api-design, search
調査の方向性
まず build-search-index.ts と search.ts を読んで静的インデックス作成と実行時インデックス作成の経路を比較し、次に検索 API とクライアントナビゲーションを追って、既存の LIMIT 20 と見出し結果の挙動を確認します。ページネーションパラメータが機能し、見出しリンクがそれぞれのアンカーまでスクロールし、本文テキストが一貫してインデックス化され、BM25 の重みが文書化または設定可能になれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem
Several search limitations affect usability:
- Hardcoded LIMIT 20 — no pagination or cursor support for large result sets
- Heading matches don't scroll — clicking a heading result navigates to the page but doesn't scroll to the `#anchor`
- Static index only indexes headings — `build-search-index.ts` extracts headings but not prose body text, making full-text search incomplete (the runtime FTS index in `search.ts` does index body text, but the two are inconsistent)
- BM25 weights are undocumented magic numbers — `bm25(search_fts, 10.0, 5.0, 1.0)` with no explanation of tuning rationale
Suggested Improvements
- Add `offset`/`limit` query params to the search API
- After navigating to a heading result, scroll the anchor into view on the client
- Unify the two search indexing paths (static builder vs runtime builder)
- Document or make configurable the BM25 weight tuning
- 主要言語
- TypeScript
- スター
- 2
- フォーク
- 1
- 平均マージ
- 12分
- マージ済み PR(30日)
- 1
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
raystack/chronicle のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 65/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
raystack/chronicle の issue をすべて見る
似ている issue
-
check:passed streams:add
難易度 1/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 2 日以内に返信
-
beta technical-medium ui
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
walletbeat/walletbeat#1625 ·
メンテナーはふだん 1 日以内に返信
-
Good First Issue hacktoberfest
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
hiero-ledger/hiero-sdk-js#4489 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] The clients language filter cannot select the rows the page labels as unknown対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
apache/rocketmq-dashboard#6103 ·
メンテナーはふだん 4 日以内に返信
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
payloadcms/payload#18652 ·
メンテナーはふだん 1 日以内に返信