Search Concordance
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 30/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- typescript
調査の方向性
ブロックされている issue #48 から始めて concordance index と panel を理解し、その後 src/utils/search-fold.ts と src/utils/analysis-query.ts を読んで、共有されている folding と indexing の先行例を確認してください。未解決の UX の問題を解決する前に、#186、#155、#117、#192、および AGENTS.md を確認してください。完了とは、panel が検索、ソート、カバレッジ、頻度について合意された動作を、状態を永続化せずにサポートすることです。
索引モデルが issue の本文から書いたものです。
説明
Search, sort, and filtering over the concordance index built in #48 — including the coverage question the Analysis Catalog deliberately cannot answer: what haven't I glossed yet?
Blocked by #48: there is nothing to search until the index and its panel exist.
Scoping stub. This issue was title-only; the body below was drafted from the surrounding code and issues to make it schedulable, and records open questions rather than deciding them. Correct it freely.
Scope
- Search over surface forms, using
foldForSearchfromsrc/utils/search-fold.ts(#192, in review) — the same fold the catalog uses, soαρχηfindsἀρχῇandsalomfindsšālôm. Do not add a second fold, and do not usenormalizeSurfaceFormhere — #186 is emphatic that the search fold and the identity normalization must stay separate, and #48 buckets rows on the identity one. - Fold once at index build time, not per keystroke, following the
searchTextprecedent insrc/utils/analysis-query.ts. - Sort — occurrence count descending as the default, plus alphabetical by surface form. Collate with
Intl.Collatoron the source project'splatform.languageTag; code-point ordering is wrong for Greek and Hebrew. - Coverage filters — the reason this issue carries weight beyond "add a search box":
- unglossed only (no analysis for any occurrence)
- partly glossed (some occurrences analyzed, some not)
- fully glossed
- Frequency filters — e.g. hapax legomena, or a minimum occurrence count. Cheap once the index exists and genuinely useful for triaging what to gloss next.
- Search / sort / filter state stays ephemeral
useState, matching #186's reasoning: persisting a filter across a reload is the classic "where did my data go" bug.
Why this is the coverage surface
#186 routes coverage questions here explicitly: "Coverage questions ('what haven't I glossed?') are out of scope and belong to #50 / #117." #117 answers it per book (counts and last-modified); this answers it per word. Between them they cover "how far along am I" and "what specifically is left".
Relationship to Find (#155)
#155 (Ctrl+F) and this issue are both text search and will confuse users if they behave differently. Find is a transient in-view jump-to-next; this is a persistent ranked list. They should at minimum share the fold, and the wording of "no matches" and the match-highlighting treatment should agree. Worth designing the two together even though they ship separately.
Open questions
- Does search match glosses too, or only surface forms? Matching glosses makes this overlap the catalog's search; restricting to surface forms keeps the two panels' jobs distinct. Leaning surface-forms-only, but not decided.
- Regex or morphological search? Out of scope for a first pass, but decide whether the query shape forecloses it.
- Should this go to
user-questions.mdfor review outside the dev team? (per AGENTS.md UX-decisions guidance)
Blocked by: #48. Related: #186, #155, #117, #192.
- 主要言語
- TypeScript
- スター
- 2
- フォーク
- 0
- 平均マージ
- 1日 13時間
- マージ済み PR(30日)
- 73
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sillsdev/interlinearizer-extension のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
sillsdev/interlinearizer-extension#552 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
sillsdev/interlinearizer-extension#548 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
sillsdev/interlinearizer-extension#543 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
sillsdev/interlinearizer-extension#537 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
sillsdev/interlinearizer-extension#515 ·
メンテナーはふだん 1 日以内に返信
sillsdev/interlinearizer-extension の issue をすべて見る
似ている issue
-
area: triage theme: undefined
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
jhipster/generator-jhipster#35895 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
paperclipai/paperclip#18396 ·
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
lingdojo/kana-dojo#33380 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
chore other
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
alastair-smith/card-games#342 ·
メンテナーはふだん 1 日以内に返信