feat: hybrid search implementation#82
Open
barbara-celi wants to merge 21 commits into
Open
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.
4 tasks
4 tasks
…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 <cursoragent@cursor.com>
- 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 <cursoragent@cursor.com>
- 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
Brings in TroubleshootingCard, ListingFilter, and related shared-component exports (v6.1.0/v6.1.1) so the helpcenter EDU-17906 branch can build against this version without missing-export TypeScript errors.
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.
Description
This PR adds hybrid search backend support to
@vtexdocs/componentsas an alternative to Algolia, enabling both Help Center and Dev Portal to use the new VTEX Docs Hybrid Search API.Changes:
SearchConfigwith new backend option: { backend: 'hybrid', hybrid: {...} }InstantSearchqueries to/api/searchcalls and transforms responses to Algolia-compatible format.HybridSearchConfigandSearchBackendConfig.Related:
Types of changes