Conversation
✅ Docs preview has no changesThe preview was not built because there were no changes. Build ID: 8d64e1fda84313b3d8140c83 ✅ AI Style Review — No Changes DetectedNo MDX files were changed in this pull request. Review Log: View detailed log
|
|
✅ Changeset file added - thank you! |
Review SummaryThis PR successfully adds camelCase-aware tokenization to the schema index, enabling searches like "post" to match types such as Re-review Confirmation (2026-02-27)Re-reviewed against Apollo Rust best practices chapters 1-5. All findings from the original review remain valid. No new issues identified. Original Findings✅ No blocking or should-fix issues found Strengths:
Test Coverage AssessmentThe PR adds comprehensive test coverage:
The snapshot test update reflects expected behavior (reordered results with updated relevance scores due to additional word-boundary matches). Final Recommendation✅ Approve - This is a well-crafted feature addition that enhances search functionality without introducing performance regressions or code quality issues. Ready to merge. Reviewed by Claude Code Sonnet 4.5 |
| @@ -261,7 +314,7 @@ impl SchemaIndex { | |||
| ), | |||
| _ => String::new(), | |||
| }; | |||
There was a problem hiding this comment.
Hi @DaleSeo ! This one took me a little longer to parse as I'm new to this crate. But I noticed we’re running expand_identifiers() on query terms now (token_stream(&expanded)), and we also expand type names and the big fields string when indexing 👀
But I believe descriptions are still indexed raw (doc.add_text(description_field, ...) without expand_identifiers). If a camelCase identifier only shows up in the description (like “Use createPost to…”), it might get indexed as one token (createpost) while the query becomes create post, so description-only matches could get missed.
Is it maybe worth also expanding descriptions at index time (or storing both the raw and expanded values)?
There was a problem hiding this comment.
Great catch, @gocamille! That was my oversight. I think expanding descriptions will help improve the search quality. I'll make sure to apply this to the Rover PR as well.
While working on apollographql/rover#3020, I realized that the MCP server's schema index does not split camelCase identifiers when tokenizing, so searching for "post" fails to match types like
PostConnection,createPost, orCreatePostInput.