Skip to content

Conversation

@kevinrobinson
Copy link
Contributor

@kevinrobinson kevinrobinson commented Nov 20, 2018

Part of #2243.

Who is this PR for?

educators

What problem does this PR fix?

Searching notes didn't work with case mismatches, and didn't do any processing like stemming. It also didn't allow setting the time range, and would let clients query for all data.

What does this PR do?

First, it uses Postgres fulltext operators for matching text instead of LIKE. This includes stemming and filtering stop words. There's no ranking; all results are still time-ordered. I looked at websearch_to_tsquery which would be great but this is new in Postgres 11. It was just released as beta on Heroku, but this requires a database migration so cutting it from this PR.

Second, it allows searching by time range, defaulting to just the school year.

Third, the server clamps the time range that the client sends and the limit that it sends as well.

Screenshot (if adding a client-side feature)

screen shot 2018-11-20 at 5 44 54 pm

Checklists

Which features or pages does this PR touch?

  • Search notes

Does this PR use tests to help verify we can deploy these changes quickly and confidently?

  • Included specs for changes
  • Improved specs for existing code in need of better test coverage
  • Manual testing made more sense here

@kevinrobinson
Copy link
Contributor Author

selfie

@kevinrobinson kevinrobinson merged commit 8fbcdf9 into master Nov 20, 2018
@kevinrobinson kevinrobinson deleted the feature/search-full-text branch November 20, 2018 23:08
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