search: index entry bodies (Notes and Evidence) with a lazily loaded prebuilt index
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 42/100
- Tipo de issue
- Funcionalidade
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- javascript
- Domínio
- search
Direção de pesquisa
Start with site/lib/search.mjs, especially searchFields(e) and scoreFields, then check the build flow that produces dist/search-index.json and the existing search tests. Add a fixture whose Notes contain a unique word and verify it is found with body hits ranked below name and tag hits. Done when the index loads on first keystroke, the initial home page payload is unchanged, snippets appear for body matches, and the ROADMAP item moves to Done.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Why it matters
Searching "GDPR", "share-alike", "Steam disclosure", "AGPL export" or "file conversion" finds nothing, although those phrases are exactly what the Notes sections record. The catalog's differentiator is the licence reading, and that text is unsearchable. ROADMAP.md lists full-text search as planned.
Evidence
site/lib/search.mjs:23-29searchFields(e)builds three fields (name/publisher/tags, summary, licence); body text is excluded.data.jsis already ~326 KB (see #75), so appending full bodies would roughly double it.
Suggested approach
- At build time tokenise each body (lowercase, stop words out, light stemming) and emit a compact inverted index
dist/search-index.json(token → entry ids), fetched on the first keystroke rather than on page load. - Score body hits below name/tag hits in
scoreFieldsso current ranking holds. - Show a one-line snippet around the match on the card when the hit came from the body.
- Test with a fixture entry whose Notes contain a unique word.
Done when
A word that only appears in an entry's Notes returns that entry, the home-page payload before the first search is unchanged, and the ROADMAP item moves to Done.
- Linguagem predominante
- JavaScript
- Estrelas
- 58
- Forks
- 15
- Merge médio
- 16h 53min
- PRs com merge (30d)
- 14
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TMHSDigital/Free-Game-Dev-Assets
-
community marketing priority: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
Mantenedores costumam responder em até 1 dia
-
documentation priority: medium
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
marketing priority: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
Mantenedores costumam responder em até 1 dia
-
feature priority: medium
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
TMHSDigital/Free-Game-Dev-Assets#144 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de TMHSDigital/Free-Game-Dev-Assets
Issues semelhantes
-
area: apple-music area: build-release bug effort: small priority: high
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
ChristianTabor/Argon#32 ·
Mantenedores costumam responder em até 1 dia
-
0️⃣ phase/new
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Link Checker ReportAbertaautomated issue report
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
good first issue tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia