Line 9: |
Line 9: |
| The search API is called by the app to retrieve a high number of generic search results (products) that match a query. | | The search API is called by the app to retrieve a high number of generic search results (products) that match a query. |
| | | |
| + | <div style="background-color:#ddddff;border:1px solid black;padding:1em"> |
| There are some choices we need to make: | | There are some choices we need to make: |
| # '''How do we declare what kind of products we want to get back (matching)''' | | # '''How do we declare what kind of products we want to get back (matching)''' |
Line 14: |
Line 15: |
| # '''Which of the matching products do we send back (ordering)''' | | # '''Which of the matching products do we send back (ordering)''' |
| ## Recommendation: query-independent sort key based on product data completeness, data quality, product quality and product popularity | | ## Recommendation: query-independent sort key based on product data completeness, data quality, product quality and product popularity |
| + | </div> |
| | | |
| === Match (required) === | | === Match (required) === |
Line 54: |
Line 56: |
| * It could be very expensive to retrieve similar products in real-time or to pre-compute all of them | | * It could be very expensive to retrieve similar products in real-time or to pre-compute all of them |
| * Does not work for category search of freely typed search queries | | * Does not work for category search of freely typed search queries |
| + | |
| + | ==== Match a given set of products ==== |
| + | |
| + | Given the barcodes of multiple products, return the corresponding products. |
| + | |
| + | This is to be used to make in-store personalized recommendations: the user scans all possible product choices he/she is contemplating (e.g. 5 different breakfast cereals), and we return the corresponding products, which can then be filtered/ranked according to the user preferences. |
| | | |
| === Optional filters === | | === Optional filters === |
Line 111: |
Line 119: |
| == Performance == | | == Performance == |
| | | |
− | 95% of search queries need to return results in less than 10 seconds. | + | * 80% of search queries need to return results in less than 5 seconds. |
| + | * 95% of search queries need to return results in less than 10 seconds. |
| | | |
| Search queries should not overload the OFF servers (API server + MongoDB server) | | Search queries should not overload the OFF servers (API server + MongoDB server) |
| | | |
| [[Category:Project:Personalized_Search]] | | [[Category:Project:Personalized_Search]] |
| + | [[Category:Search]] |