Skip to content

Add search index foundations#887

Draft
jpurnell wants to merge 1 commit into
twostraws:mainfrom
jpurnell:feature/search-foundations
Draft

Add search index foundations#887
jpurnell wants to merge 1 commit into
twostraws:mainfrom
jpurnell:feature/search-foundations

Conversation

@jpurnell
Copy link
Copy Markdown
Contributor

@jpurnell jpurnell commented May 21, 2026

Summary

  • Adds TextProcessor with HTML stripping, excerpt generation, tokenization with Porter stemming and stop-word removal
  • Adds SearchEntry Codable model for indexed content
  • Adds SearchConfiguration with sensible defaults and SearchField/SearchLanguage enums
  • Adds SearchIndexGenerator producing JSON search indices from Article collections
  • 36 new tests covering text processing, configuration, and index generation

Design

Purely additive — new Sources/Ignite/Search/ directory. The generator takes [Article] as input, making it testable without a publishing context. SearchBar component and pipeline integration are planned as follow-ups.

Test plan

  • All 36 new tests pass
  • Full test suite passes (1353 tests)
  • swift build clean with no warnings

…Generator

Introduces standalone search indexing types for build-time generation
of client-side search indices:

- TextProcessor: HTML stripping, excerpt generation, tokenization
  with Porter stemming and stop-word removal
- SearchEntry: Codable model for indexed content
- SearchConfiguration: site-level search settings
- SearchField/SearchLanguage: configuration enums
- SearchIndexGenerator: produces JSON index from Article collections

Purely additive. SearchBar component and pipeline integration are
planned as follow-ups.
@jpurnell jpurnell marked this pull request as draft May 21, 2026 22:15
@twostraws
Copy link
Copy Markdown
Owner

Hi Justin! Thank you for all these contributions. There are quite a few, and all touching very different parts of Ignite, so it's hard to see a bigger picture here. Could we discuss this in the #Ignite channel on Slack, please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants