Skip to content

Reference of foundations and common patterns in Atlas Search.

Notifications You must be signed in to change notification settings

esteininger/atlas-search-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Full Text Search Directly in your Database

Build fast, relevant, full-text search capabilities on top of your data in the cloud

This Full Text Search Guide teaches the foundations and enhancements, so you can build large-scale full text search applications without managing indexes, hardware or replication.

🌩️ Foundations - Start with building a full text search application from scratch in under 100 lines of Python code, then continue to apply additional search-native functions like autocomplete, scoring, highlighting and more.

🌌 Patterns & Use Cases - Combine your knowledge from Foundations and apply it to solve actual business problems. Examples include real world use cases such as relevance score boosting in a restaurant search engine.

🍱 Architecture - Full Text Search doesn't live in a bubble, the data needs to come in and often out as well. Learn how others integrate technologies such as Kafka and S3 into their Full Text Search stack to scale effortlessly.

📦 Miscellaneous - Other content that didn't fit the categories above. This includes examples on using the API to create custom synonym mapping layers, testing search index consistency latency, and more.

Search Foundations

# Label Description
1 Engine Review the basic components of a full-text search engine (including tokenization), and build one.
2 Basic Run a simple text search.
3 Fuzzy Handle common typos
4 Highlighting Add a relevance score and hit highlights to the results
5 Autocomplete Search as you type
6 Phrase Ordered sequence of words
7 Diacritics Include multiple languages
8 Compound Combine two or more operators into a single query (or clause)
9 Explain Understand how the mongot (lucene) returns results in order to tune performance.
10 Count Return a count of the documents returned.

Search Patterns & Use Cases

# Label Description
1 Multi Tenant // Shard Targeting Ability to build search applications that limit what an end user can search for based on their tenancy.
2 Weighted Fields Implement relevance weights where some fields more important than other fields.
3 Advanced Scoring Ensure the boosted variable doesn’t overwhelm the relevance of our search results.
4 Sorting Using the Atlas Search near operator to sort documents based on a numeric, date, or geo field.
5 Synonyms Implement a synonym-based search functionality
6 Multi Collection Search Run a search query that spans multiple collections
7 Faceting Dynamically cluster search results into categories in order to drill down
8 Custom Analyzers Building our own custom analyzers to satisfy different app requirements
9 Automated Search Tuning
10 Autocomplete With Synonyms
11 Saved Searches
12 Flexible Querying The ability to combine multiple indexes to perform performant queries.

End to End Code Demos

# Source Description
1 MongoRX GraphQL with custom Resolver
2 Auto-Tuning Using synonyms, auto-improve your search results
3 Restaurant Finder Restaurant finder app that showcases search queries

Example Search Architecture

# Label Description
1 Event Streaming Using Realm and Kinesis, initiate a workflow where as documents are updated, they're pushed to a Kinesis queue and then pushed to Atlas to be searched.

Miscellaneous

# Label Description
1 Index Creation API Using REST to modify Search indexes
2 Index Speed Test How long does it take to create an index and return a search result?

Credits

This project is made possible by the community surrounding it and especially the wonderful people and projects listed in this document.

About

Reference of foundations and common patterns in Atlas Search.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published