search: index entry bodies (Notes and Evidence) with a lazily loaded prebuilt index
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 42/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript
- Bereich
- search
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 58
- Forks
- 15
- Ø Merge
- 18 Std. 42 Min.
- Gemergte PRs (30 T.)
- 11
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TMHSDigital/Free-Game-Dev-Assets
-
community marketing priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation priority: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
correction
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 57/100
TMHSDigital/Free-Game-Dev-Assets#162 ·
Maintainer antworten meist innerhalb von 1 Tag
-
marketing priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in TMHSDigital/Free-Game-Dev-Assets
Ähnliche Issues
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
glossyio/traffic-monitor#264 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
micromatch/picomatch#243 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
getComputedStyle().display is "" for span, a, b, label and other inline elements instead of "inline"Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
capricorn86/happy-dom#2556 ·
Maintainer antworten meist innerhalb von 1 Tag