**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:

```js
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:

```js
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

```js
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`, not `vectorSearch`. They are different indexes for different query operators (`$search` vs `$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.
- `$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.

## 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.