Giter VIP home page Giter VIP logo

atlas-search-guide's Introduction

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.

atlas-search-guide's People

Contributors

esteininger avatar misczak avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.