Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search Service in Storefront App #373

Open
magento-engcom-team opened this issue Oct 8, 2020 · 1 comment
Open

Search Service in Storefront App #373

magento-engcom-team opened this issue Oct 8, 2020 · 1 comment

Comments

@magento-engcom-team
Copy link

As a Headless Magento Commerce Customer, 

I would like to search the entire catalog for products or limit the search on selected filters

So that

I can get to the products  I want in a fast and efficient manner. 

Acceptance Criteria

  • The existing graphql schema is preserved and all filters and aggregations are supported. 

  • The new Search graphql schema is also supported by the search service.

  • Graphql supports full-text search and the search response supports pagination and sorting.

    • The default page size must be 20.
  • Search results must return aggregations if requested by the user. 

  • Search results can be refined further by specifying one or more filers. 

    • All attributes that enabled to search and filtering in the admin must automatically be available for filtering in the graphql schema. 
    • A filter must support OR operation if multiple values are specified for it. for ex color: {in:<"Red", "Blue">}.
  • Static tests which verify that we don’t have prohibited dependencies from storefront to monolith and vice versa.

  • Storefront services should be compatible with SaaS, which means that they might be easily substituted with SaaS services later, or they might communicate with SaaS services instead of Magento SF services.

  • That compatibility assumably should be implemented based on the Storefront API level, so that Storefront API should be compatible with RPC.

 

Implementation details

For the 1st Phase as a "transition" solution was decided to go with the following approach:

  • Create a new Search Service with SF API
    • Create SF API (ptotobuf schema) to handle only Query (GET) API 
    • gRPC Query API serves new GQL search schema along with existing GQL search Shema
  • The existing full-text search index (elasticsearch index) from Magento Monolith is directly used by Search Service
    • Existing code from Magento Monolith required to server Search Query is copy-pasted and adapted to Search Service
    • Any code related to indexation process or any "manage" logic should be skipped and not copy-pasted to Search Service
    • Possibly to do a direct call to table in DB (e.g. to obtain a list of stop-words)
  • Search Service should have a configuration (stored in env.php) with specifying credentials to ES index for fulltext search (refer to Monolith)

 

 

 

@magento-engcom-team
Copy link
Author

The issue was exported from the internal JIRA. The link to the original JIRA issue: https://jira.corp.magento.com/browse/SFAPP-58

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants