Project : High Availability during Search Pipeline Changes
Team Number : 6
Team Name : Manchester Is Red
Demonstration Video : Insert link to demonstration video
The application provides a User Interface that provides advanced searching capabilities such as auto-completion and boosting search results based on specific criteria. Search conditions can be modified with minimal effort and with no downtime.
The group decided to construct an application that would demonstrate not only the value of an integrated search engine with a database but, most importantly, without the expense of an ETL process while indicating how quickly search priority could be modified with changing market conditions.
Inspiration was from the ease of use and the power of making real-time changes to critical search functionality in minimum time without an expensive development sprint from a software engineering team. From a Presales perspective, this demonstration will show the customer exactly what happens and what effort is required when a customer determines they need to change search priority.
This illustrates developer productivity, resiliency, scalability, and ease of use among a variety of integration points with MongoDB's Application Development Platform.
- MongoDB Atlas
- Atlas Search (Autocomplete, Boost, Pin, Bury, Hide, Search Priority)
- MongoDB Charts
- MongoDB Realm (Functions, Hosting, GitHub Integration)
- React (Axios)
The application simulates a real-world search scenario for an ecommerce or products based company (MongoMart). Search criteria can be modified and weighted utilizing the Pin, Hide, Bury, and Boost features of Atlas Search.
Team Members/Contributions
- Chris King - User Interface/Demo
- Julia Guenther - Realm Functions/Demo/Data Load
- Benoit Lacharite - Data Wrangler/Search Pipeline
- Suraj Shetty - Search Query Development
- Leonardo Anez - User Interface
- Blaine Mincey - Data Generation/Documentation
- Create MongoDB Atlas Cluster w/ database user and network whitelisting.
mongorestore
products collection from /data directory- Create Atlas Search indexes on products collection
- 'default' index with [dynamic] index fields
- 'autocomplete' index for 'Product Name' field and dynamic mapping 'off'
- Deploy Realm application with Realm command line interface
This script will simulate a user searching every .5 seconds and posting a transaction to our transactions collection
Python
python3 scripts/product_search.py
- The ability to update complex underlying search aggregation queries easily with no downtime (search lives alongside your data)
- The ability to boost/hide/pin/bury results using search filters
- Quit out of the python script it will never stop