Skip to content

[DURACOM-506] added spellcheck support - #5935

Open
steph-ieffam wants to merge 2 commits into
DSpace:mainfrom
4Science:task/main/DURACOM-506
Open

[DURACOM-506] added spellcheck support#5935
steph-ieffam wants to merge 2 commits into
DSpace:mainfrom
4Science:task/main/DURACOM-506

Conversation

@steph-ieffam

@steph-ieffam steph-ieffam commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

References

Relates to

DSpace/RestContract#359
DSpace/DSpace#12792

Description

Added support for Spellcheck "did you mean?" feature whose porting from version 6 was not completed

Instructions for reviewers

  • Create items with dc.title set to test
  • Run the following script ./dspace index-discovery --spellchecker to rebuild the spellchecker index
  • Type in the search box testi
  • You'll get displayed the correct suggested query in the search page
    Alternatively this test could be run using any other item in the repository trying to use a misspelled query.
    The result strictly depends on the on the content indexed on Solr as already defined in the Solr configuration
Screenshot from 2026-07-07 11-12-32

Checklist

  • My PR is created against the main branch of code (unless it is a backport or is fixing an issue specific to an older branch).
  • My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
  • My PR passes ESLint validation using npm run lint
  • My PR doesn't introduce circular dependencies (verified via npm run check-circ-deps)
  • My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
  • My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
  • My PR aligns with Accessibility guidelines if it makes changes to the user interface.
  • My PR uses i18n (internationalization) keys instead of hardcoded English text, to allow for translations.
  • My PR includes details on how to test it. I've provided clear instructions to reviewers on how to successfully test this fix or feature.
  • If my PR includes new libraries/dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
  • If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
  • If my PR fixes an issue ticket, I've linked them together.

@steph-ieffam steph-ieffam added bug component: Discovery related to discovery search or browse system affects: main Issue impacts "main" (latest release). affects: 8.x Issue impacts 8.x releases affects: 9.x Issue impacts 9.x releases affects: 10.x Issue impacts 10.x releases port to dspace-8_x This PR needs to be ported to `dspace-8_x` branch for next bug-fix release port to dspace-9_x This PR needs to be ported to `dspace-9_x` branch for next bug-fix release port to dspace-10_x This PR needs to be ported to `dspace-10_x` branch for next bug-fix release labels Jul 7, 2026
@lgeggleston lgeggleston removed affects: main Issue impacts "main" (latest release). affects: 8.x Issue impacts 8.x releases affects: 9.x Issue impacts 9.x releases affects: 10.x Issue impacts 10.x releases labels Jul 7, 2026
@lgeggleston lgeggleston moved this to 🙋 Needs Reviewers Assigned in DSpace 11.0 Release Jul 7, 2026
@tdonohue
tdonohue requested review from EikLoe and tdonohue July 9, 2026 14:50
@tdonohue tdonohue moved this from 🙋 Needs Reviewers Assigned to 👀 Under Review in DSpace 11.0 Release Jul 9, 2026

@EikLoe EikLoe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @steph-ieffam,
thanks for this new feature. I tested it and it worked perfectly.
The code looks fine, too. The only thing I wanted to ask: could you add the spellcheck feature to the spec test of the search-results.component.spec.ts.
For example:

  it('should display link based on spellcheck', () => {
    (comp as any).searchResults = { payload: { page: { length: 0 }, spellCheckSuggestions: ['test'] } };
    (comp as any).spellCheckSuggestions = ['test'];
    (comp as any).searchConfig = { query: 'testi' };
    fixture.detectChanges();

    const linkDes = fixture.debugElement.queryAll(By.directive(QueryParamsDirectiveStub));

    // get attached link directive instances
    // using each DebugElement's injector
    const routerLinkQuery = linkDes.map((de) => de.injector.get(QueryParamsDirectiveStub)).filter(
      val => val.queryParams.query === 'test');

    expect(routerLinkQuery.length).toBe(1, 'should have 1 router link with query params "test"');
  });

@steph-ieffam

Copy link
Copy Markdown
Contributor Author

Hey @EikLoe thanks for the suggestion I totally forgot to introduce any testing.
The test you suggested looks good to me.
I'll check if the pipeline works fine but it should
Thanks

@steph-ieffam
steph-ieffam requested a review from EikLoe July 27, 2026 15:05

@EikLoe EikLoe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks @steph-ieffam 👍🏾

@steph-ieffam steph-ieffam moved this from 👀 Under Review to 👍 Reviewer Approved in DSpace 11.0 Release Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug component: Discovery related to discovery search or browse system port to dspace-8_x This PR needs to be ported to `dspace-8_x` branch for next bug-fix release port to dspace-9_x This PR needs to be ported to `dspace-9_x` branch for next bug-fix release port to dspace-10_x This PR needs to be ported to `dspace-10_x` branch for next bug-fix release

Projects

Status: 👍 Reviewer Approved

Development

Successfully merging this pull request may close these issues.

"Did you mean" Spellcheck feature doesn't exist on search page

4 participants