Skip to content
Agentmart
Submit a tool

documentdb-full-text-search

Full-text search best practices for Azure DocumentDB using the `createSearchIndexes` command and `$search` aggregation stage — BM25 keyword scoring, fuzzy…

Skill by AzureOfficial

IndexedMIT★ 6
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/azure-documentdb-full-text-search

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Full-text search best practices for Azure DocumentDB using the `createSearchIndexes` command and `$search` aggregation stage — BM25 keyword scoring, fuzzy search (`maxEdits`), phrase search with `slop`, custom analyzers (keyword + lowerCase + asciiFolding + edgeGram) for prefix / ID matching, `pathHierarchy` tokenizer for hierarchical IDs, multi-field search indexes, and hybrid (BM25 + vector) retrieval via Reciprocal Rank Fusion. Use when building search experiences, adding typo tolerance, matching phrases or prefixes on IDs / SKUs / part numbers, or combining lexical and semantic retrieval on the same collection.

Use cases: cloud

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/documentdb-full-text-search

What's inside

Skill name
documentdb-full-text-search
Description
Full-text search best practices for Azure DocumentDB using the `createSearchIndexes` command and `$search` aggregation stage — BM25 keyword scoring, fuzzy search (`maxEdits`), phrase search with `slop`, custom analyzers (keyword + lowerCase + asciiFolding + edgeGram) for prefix / ID matching, `pathHierarchy` tokenizer for hierarchical IDs, multi-field search indexes, and hybrid (BM25 + vector) retrieval via Reciprocal Rank Fusion. Use when building search experiences, adding typo tolerance, matching phrases or prefixes on IDs / SKUs / part numbers, or combining lexical and semantic retrieval on the same collection.
License
MIT
Instructions
24 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • name: "documentdb-full-text-search" does not match folder "full-text-search"

Files (9)

  • SKILL.md
  • fts-basic-search.md
  • fts-create-search-index.md
  • fts-custom-analyzers.md
  • fts-fuzzy-search.md
  • fts-hybrid-search.md
  • fts-multifield-index.md
  • fts-path-hierarchy.md
  • fts-phrase-search.md

SKILL.md (first lines)

# Full-Text Search — Azure DocumentDB (`$search` + `createSearchIndexes`)

Azure DocumentDB's full-text search is driven by search indexes built with the **`createSearchIndexes`** database command and queried through the **`$search`** aggregation stage. Scoring is **BM25**, exposed via `$meta: "searchScore"`. The community `$text` operator and `{ field: "text" }` index type are **not** the DocumentDB search path.

Key syntax points that differ from many blog posts and older docs:

- **Index command** is `createSearchIndexes` (not `createIndexes`) — each index has a `name` and a `definition.mappings.fields` block; `dynamic: false` is the safe default.
- **Custom analyzers** live inside `definition.analyzers` and are referenced per-field via `analyzer` / `searchAnalyzer`.
- **`$search` targets an index by name** via `index: "<name>"` — the engine does not auto-pick when multiple exist.
- **No `count` field** inside `$search` — use a downstream `{ $limit: N }` stage.
- **No `compound` operator yet** — query one field at a time and merge in the application (see `fts-multifield-index`).

## Rules

- [fts-create-search-index](fts-create-search-index.md) — Create a search index via `runCommand({ createSearchIndexes })`; use `definition.mappings` with `dynamic: false`.
- [fts-basic-search](fts-basic-search.md) — `$search` + `text` operator for BM25 keyword search; target `index`, project `searchScore`, cap with `$limit`.
- [fts-fuzzy-search](fts-fuzzy-search.md) — Add `fuzzy: { maxEdits: 1 }` to tolerate typos; keep `maxEdits` small.
- [fts-phrase-search](fts-phrase-search.md) — `phrase` operator with `slop` for ordered-proximity matching.
- [fts-custom-analyzers](fts-custom-analyzers.md) — Keyword tokenizer + `lowerCase` + `asciiFolding` + `edgeGram` for case-insensitive prefix matching on IDs, SKUs, part numbers. Index-time vs search-time analyzer pair.
- [fts-path-hierarchy](fts-path-hierarchy.md) — `pathHierarchy` tokenizer for hierarchical identifiers (`BN-747-ENG-2024.05`, dotted, slash paths).
- [fts-multifield-index](fts-multifield-index.md) — One search index mapping multiple fields; fan-out-and-merge in the app while `$search` `compound` is unavailable.
- [fts-hybrid-search](fts-hybrid-search.md) — Combine BM25 and vector search (RRF) on the same collection.

From Azure/documentdb-agent-kit, MIT.

More from Azure/documentdb-agent-kit

Signals

Stars
6
Forks
12
Open issues
5
Last commit (this folder)
May 26, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from Azure

Cite this page

documentdb-full-text-search skill. Agent Mart. https://agentmart.dev/skills/azure-documentdb-full-text-search (last updated 2026-10-24)