Skip to content

Commit 662b6b4

Browse files
committed
progress checkpoint
1 parent e48ea24 commit 662b6b4

File tree

12 files changed

+80
-20
lines changed

12 files changed

+80
-20
lines changed

docs/01_Welcome.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
# Welcome
2-
3-
Welcome to the Atlas Search Fundamentals Workshop! In this interactive session, you'll learn how to use the MongoDB Atlas Search Playground to create and test powerful search queries for an Airbnb-like dataset, all without the need for setting up your own cluster.
1+
# Welcome!
42

53
This workshop presents the fundamental concepts of the full-text search capabilities provided by Atlas Search, and empowers developers with best practice techniques to bring powerful search experiences to their applications. Developers will engage with a number of practical exercises to gain experience and confidence in understanding textual analysis and tokenization, configuring field types, and leveraging search operators for better relevancy.
64

@@ -25,3 +23,13 @@ This workshop presents the fundamental concepts of the full-text search capabili
2523

2624
5. **Data modeling and schema design for Atlas Search**
2725
- Best practices
26+
27+
## TODO
28+
29+
Fill in any other blanks for welcoming and setting the stage for the workshop.
30+
31+
## The Exercises
32+
33+
This workshop uses the Atlas Search Playground for the exercises. All you need is a browser and network connectivity. This handy developer tool allows us to work in an isolated, focused environment
34+
with no setup.
35+

docs/10_Playground/1_intro.md renamed to docs/10_About_workshop/1_intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ There are two tools in the Playground:
66
* `Code Sandbox`: your data, an index configuration, an aggregation pipeline, and results
77
* `Search Demo Builder`: a configurable search UI on your data
88

9-
The exercises will use the Code Sandbox, as it allows saving and sharing links to the full environment and allows us to work on one topic at a time.
9+
The exercises will only use the Code Sandbox, as it allows saving and sharing links to the full environment and allows us to work on one topic at a time. We'll cover the Search Demo Builder briefly near the end of thw workshop.
1010

1111
## Code Sandbox layout
1212

docs/10_Playground/2_lets_go.mdx renamed to docs/10_About_workshop/2_lets_go.mdx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ we'll get there next. See if you can solve it with what you already know or expe
55

66
1. Navigate to this Playground snapshot:
77
https://search-playground.mongodb.com/tools/code-sandbox/snapshots/6782aea0667feaaf06324b87
8-
2. Press "Run" (TODO: bring in the Run graphic)
8+
2. Press "Run"
99
3. Notice the empty `[]` results
1010

1111
The objective with this exercise is to adjust the `FIX_ME` in the `$search` aggregation pipeline stage so that the document (in the Data Source pane) matches the query and appears in the Results pane.
1212

13-
TODO: insert un-fixed playground screenshot
13+
![Playground intro exercise](/img/playground_intro_exercise.png)
14+
15+
![Run button](/img/playground_run.png)
1416

1517
<details>
1618
<summary>Here's a solution...</summary>

docs/15_Overview/1_system.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
# 📘 Atlas Search architecture
22

3+
Atlas Search provides powerful findability capabilities to your data collections. A flexible index configuration allows mapping and indexing only the fields needed, or dynamically mapping any and all fields supported.
4+
5+
![big picture](/img/big_picture.png)
6+
7+
38
![system diagram](/img/system_diagram.png)
49

10+
Changes to a collection via updates, deletes, or additions are *eventually consistent*, meaning the
11+
index is updated independently of changes to the collection in a separate process, asynchronously. The lag between a change made to the database and refelected in a subsequent search is dependent on many factors such as deployment tier and architecture, the complexity of the index mapping, the other changes that are also queued, and the laws of physics.
12+
13+
The Atlas Search process can be deployed either coupled alongside the database nodes, or on separate dedicated nodes. Dedicated nodes provide separation of concerns, alleviating resource contention. Dedicated search nodes are recommended for production workloads.
14+
515
## Coupled nodes
616
![coupled nodes](/img/coupled.png)
717

docs/15_Overview/3_data_types renamed to docs/17_Index_configuration/3_field_mapping.mdx

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,54 @@
1-
# Field types
1+
# 👐 Field types
22

3-
## boolean
4-
equals: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6ab1d49ef6fad98118b4
3+
Document fields are mapped to a search index based on their BSON data type.
54

6-
## date
7-
range: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6b18d49ef6fad98118b6
5+
When `dynamic: "true"`, a field is indexed if its field type is supported.
86

9-
## number
10-
range: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6b4ad49ef6fad98118b8
7+
When a field name is explicitly/statically mapped, it will be indexed if the field type also matches the
8+
mapped type.
119

12-
## geo
13-
geoWithin: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6b762ce7658e786edbfa
14-
Requires explicit geo type mapping, since dynamic mappings don’t support geo.
10+
**TODO**: Turn each of these playgrounds into a challenge
1511

16-
## autocomplete
12+
## Basic field types
13+
14+
### boolean
15+
* `equals`: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6ab1d49ef6fad98118b4
16+
* `in`: ...
17+
18+
### date
19+
* `equals`: ...
20+
* `in`: ...
21+
* `near`: ...
22+
* `range`: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6b18d49ef6fad98118b6
23+
24+
### number
25+
* `equals`:
26+
* `in`: ...
27+
* `near`: ...
28+
* `range`: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6b4ad49ef6fad98118b8
29+
30+
### ObjectId
31+
* `equals`: https://search-playground.mongodb.com/tools/code-sandbox/snapshots/678506c2b6487c1cfd0bb540
32+
* `in`:
33+
34+
### geo
35+
Dynamic mapping does not support geo-spatial fields, and require a manual/static mapping configuration.
36+
37+
* `geoWithin`: https://search-playground.mongodb.com/tools/code-playground/snapshots/669e6b762ce7658e786edbfa
38+
* `geoShape`:
39+
* `near`:
40+
41+
## Other field types
42+
43+
### autocomplete
1744
blah, don’t do it! ;)
1845
See also: Relevant As-You-Type Suggestions Search Solution
1946

20-
## document
47+
### document
2148

2249
Default dynamic mapping behavior, flattens nested documents into “arrays” of values on main document
2350

24-
## embeddedDocument
51+
### embeddedDocument
2552
Attribute pattern k/v matching, more nuanced than document type flattening
2653
See cool tricks for embedded documents
2754

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# 📘 String fields
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"label": "XXXX",
3+
"position": 4,
4+
"link": {
5+
"type": "generated-index",
6+
"description": "In this section, you'll install all required software."
7+
}
8+
}

docs/90_Summary.mdx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
Congratulations!
44

5-
## Additional topics
5+
## Search Demo Builder
6+
7+
Do a demonstration of this tool, discussing it's sweet spot
8+
9+
## Search topics not covered here
610

711
* Faceting
812
* Highlighting

static/img/big_picture.png

94.6 KB
Loading
288 KB
Loading

static/img/playground_run.png

6.56 KB
Loading

0 commit comments

Comments
 (0)