EDU-18458 - [HC] Remove KI category from search results page#85
Open
barbara-celi wants to merge 24 commits into
Open
EDU-18458 - [HC] Remove KI category from search results page#85barbara-celi wants to merge 24 commits into
barbara-celi wants to merge 24 commits into
Conversation
This commit introduces a new hybrid search adapter for the `@vtexdocs/components` package, allowing integration with the Help Center's API while maintaining backward compatibility with Algolia. Key changes include the addition of a new `HybridSearchConfig` interface, updates to the `search-config.ts` file to support hybrid search, and modifications to the `SearchConfig` function to handle both Algolia and hybrid configurations. The implementation aims for minimal code changes and reuses existing components.
This update modifies the request selection logic in the `search-config.ts` file to prioritize requests with a non-empty query. If no such request is found, it defaults to the first request in the array. This change enhances the hybrid search functionality by ensuring more relevant queries are processed.
…tion This commit introduces a new utility function, `stripMarkdownForSnippet`, to remove Markdown syntax from text snippets, enhancing the readability of search results. Additionally, the `hitsPerPage` configuration is now dynamically set from the search configuration, improving pagination handling in the search results component.
- Enhanced stripMarkdownForSnippet to handle images, code blocks, blockquotes - Fixed regex patterns for better markdown syntax removal - Ensures search results display clean plain text without markdown formatting Co-authored-by: Cursor <[email protected]>
- Add special handling for tracks URLs to use only last segment - Fix URL pattern: /pt/docs/tracks/modulos-da-vtex-i instead of full path - Improve snippet handling to remove mid-word truncation - Strip incomplete words at start of truncated snippets Co-authored-by: Cursor <[email protected]>
- Added special handling for tutorial URLs to use only the last segment - Improved URL pattern for special doctypes (faq, known-issues, troubleshooting, announcements) to return only the slug - Updated comments for clarity on URL construction logic
- Updated URL construction logic to handle multiple special document types (tracks, tutorials, faq, known-issues, troubleshooting, announcements) using a unified approach. - Simplified the URL pattern to return only the slug for these document types. - Removed redundant conditions and improved code clarity with updated comments.
- Updated URL construction logic to differentiate between document types (tracks, tutorials, faq, known-issues, troubleshooting, announcements). - Implemented specific handling for tracks and tutorials to retain "docs" in the URL, while removing it for other types. - Enhanced comments for clarity on the URL patterns and their respective handling.
…ration - Added specific handling for 'faq', 'troubleshooting', 'announcements', and 'known-issues' document types to return only the slug in the URL. - Enhanced comments to clarify the URL patterns and their handling logic. - Ensured consistent URL construction for localized paths.
# Conflicts: # dist/index.css.map # dist/index.mjs.map
…electors Adds data-testid, data-filter, and data-active attributes to SearchFilterTab and SearchFilterTabBar so Cypress tests in vtexdocs/helpcenter can select the tab bar, individual tabs, and count badges without fragile DOM traversal.
… tokens and dangling syntax
…onents into feat/hybrid-search
…h filtering logic
… and improve doctype detection
… improve build output consistency
108c41c to
cf3deb7
Compare
… and improve hit selection logic
Open
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EDU-18458
This PR adds support for excluding specific documentation sections from the Help Center search page while keeping them visible in the main sidebar.
It introduces a reusable
excludeFromSearchflag on the Section type. Consumers (e.g. Help Center) can mark a section with this flag to:nbHits).Note: The header
SearchInputdropdown is not affected by this PR; exclusions apply to the full/searchpage only.This was implemented to move Known Issues out of the search filters and into the sidebar (between Announcements and Status) without hardcoding doctype IDs in the shared components package.
Related work
EDU-17906 — Hybrid Search integration
This branch builds on
feat/hybrid-search, which adds a hybrid search client insearch-config.tsand related utilities. The EDU-18458 exclusion logic extends the client to parseNOT doctype:"..."filters and apply doctype exclusions client-side (the upstream Hybrid Search API does not natively support doctype filtering).Without the hybrid search foundation, exclusion would only apply on the Algolia code path via InstantSearch
Configure.filters.Changes
1. New
excludeFromSearchflag onSectionexcludeFromSearch?: booleantoSectionin src/utils/typings/types.tsisExternalLink, but for internal sections that should remain in the sidebar and be excluded from search2. Search filter UI
search-filter-tab-bar: Skips sections whereexcludeFromSearchistrue.search-sections: Extends the existing external-link filter to also skipexcludeFromSearchsections.3. Search query and result counts
search-results: Builds an Algolia and Hybrid Search filter that excludes all flagged doctypes, e.g.NOT doctype:"known-issues"nbHits).infiniteHits: Updates doctype-selection detection so the always-presentNOT doctype:"..."clauses do not break facet count updates when no category tab is selected.Design notes
LibraryContextProvidersections data, not hardcoded in componentsexcludeFromSearch: true.isExternalLink:isExternalLinkhides external links from search sections;excludeFromSearchhides internal sections from search entirely.Consumer change required
This PR only updates
@vtexdocs/components. For the implementation in the Help Center, see the vtexdocs/helpcenter#476Types of changes