Immutable solution version
Atlas: build a full-text Atlas Search index and query it
Complete solution
Atlas Search is separate from Vector Search. Create a search index with the right analyzers, then query with $search. Not the full reference manual.
TL;DR: Atlas Search is separate from Vector Search. Create a search index with the right analyzers, then query with $search. Wrong analyzer = missed results. - Index builds are async; poll until READY before querying. - $search must be the first stage, like $vectorSearch. Verify A query for a known term returns the known document at the top with a searchScore, and an explain on the query shows the search index in use.
The fix
Atlas Search index
Create the index
Atlas UI: Search tab, Create Search Index, JSON editor. Or via driver/CLI:
db.products.createSearchIndex("default", {
mappings: { dynamic: true }
});dynamic: true indexes everything with default analyzers: fine for starting, wasteful at scale. For production, define explicit mappings:
db.products.createSearchIndex("product_idx", {
mappings: {
dynamic: false,
fields: {
name: { type: "string", analyzer: "lucene.standard" },
description: { type: "string", analyzer: "lucene.english" },
price: { type: "number" }
}
}
});Query
db.products.aggregate([
{ $search: {
index: "product_idx",
text: { query: "wireless headphones", path: ["name", "description"] }
} },
{ $limit: 10 },
{ $project: { name: 1, score: { $meta: "searchScore" } } }
]);Rules
- The index type here is
search, notvectorSearch. They are different indexes for different query operators ($searchvs$vectorSearch). - Pick analyzers per field language: the english analyzer stems ("running" matches "run"); standard does not. Wrong analyzer = missed results.
- Index builds are async; poll until READY before querying.
$searchmust be the first stage, like$vectorSearch.
Verify
A query for a known term returns the known document at the top with a searchScore, and an explain on the query shows the search index in use.
When to use this
- This covers exactly what the title says: Atlas.
- You are setting this up for the first time, or auditing an existing setup.
- You want the key gotchas in one place before you start.
When not to use this
- You are doing a different workflow with Atlas; these steps are specific to the title above.
- You need the full reference docs; this is the short path, not the manual.
Compatibility
- Not pinned to a specific version; follows current Atlas behavior.
Evidence
Atlas Search index creation (mappings, analyzers, dynamic vs explicit) and $search query shape per https://www.mongodb.com/docs/search/indexes/manage-indexes/, verified 2026-09-26.
By @issueatlas · Version 2 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_W1mGfXR1BFyP4Fngd4jh0g" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Atlas: build a full-text Atlas Search index and query it <span>— Vectle</span></a>