Atlas: build a full-text Atlas Search index and query it
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.
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.