Skip to content

Rename Learn tab to Capabilities with full restructure#3514

Open
qdequele wants to merge 91 commits intomainfrom
rename-learn-to-capabilities
Open

Rename Learn tab to Capabilities with full restructure#3514
qdequele wants to merge 91 commits intomainfrom
rename-learn-to-capabilities

Conversation

@qdequele
Copy link
Member

@qdequele qdequele commented Mar 20, 2026

Summary

  • Rename Learn tab to Capabilities with 11 capability sub-folders following a consistent structure: overview, getting_started, how_to, advanced
  • 106 capability pages total: 35 moved/renamed from learn/, 40+ new pages written, 11 overview pages, 3 evolved pages
  • ~70 redirects from old learn/* paths to new capabilities/* paths
  • All internal links updated across getting_started/, guides/, resources/, reference/
  • All changelog features documented from v1.12 through v1.39
  • OpenAPI spec fully in sync: 133 routes, all in navigation

Capabilities covered

Capability Pages Key new content
Full-text search 23 Placeholder search, snippets, phrase search, matching strategy, ranking pipeline, performance tuning, debug performance details
Hybrid search 16 OpenAI/Cohere/HuggingFace embedder configs, semantic vs hybrid guide, custom ranking, composite embedders
Geo search 7 Per-operation how-tos (radius, bounding box, polygon, sort, GeoJSON)
Conversational search 7 Chat workspace config, streaming, guardrails, source documents
Multi-search 7 Multi-index search, federation weights, unified search bar, useNetwork distributed search
Filtering/sorting/faceting 9 Combine filters+sort, faceted navigation, granular filterable attributes
Personalization 4 User context generation, ecommerce personalization
Analytics 8 Click/conversion tracking, search metadata header
Security 7 SSO config, API key management
Teams 4 Getting started, role management, SSO for teams
Indexing 14 Foreign keys, export, compact, fields inspection, skipCreation, customMetadata

Also in this branch (prior commits)

  • Resources tab restructure with self-hosting, comparisons, migration guides
  • New migration guides (Elasticsearch, Qdrant, MongoDB, PostgreSQL, Supabase)
  • Rewritten comparison pages with accurate data
  • Sharding documentation in resources/self_hosting/
  • Redirect audit script

Issues fixed

Closes #3508, closes #3500, closes #3492, closes #3491, closes #3162, closes #3161, closes #3108, closes #3045, closes #2982, closes #2898, closes #2815, closes #2728, closes #2678, closes #3354, closes #3172, closes #3467, closes #3320, closes #3516, closes #3437, closes #3160, closes #1018, closes #2893, closes #3146, closes #2888, closes #3204, closes #3373, closes #3084, closes #3229, closes #3178, closes #3049, closes #2690, closes #2831, closes #2726, closes #2958, closes #3203

Test plan

  • Verify Mintlify build succeeds with mintlify dev
  • Check all 106 capability pages render correctly
  • Verify redirects work for old learn/* URLs
  • Spot-check internal links across tabs
  • Verify OpenAPI reference pages still render

🤖 Generated with Claude Code

qdequele added 30 commits March 19, 2026 20:18
Move 28 documentation pages into a new Resources tab with four groups:
- Self-hosting (9 files + 3 data backup files)
- Migration (3 files)
- Help (9 files)
- Internals (4 files)

Update docs.json with new Resources tab, remove old groups from Learn
and Guides tabs, add 28 redirects for old paths, and update 27
existing redirects to avoid chains.

Update internal links across 39 MDX files to reflect new paths.

Fix content accuracy issues found by cross-referencing with source:
- configuration.mdx: fix payload limit default, add 9 missing
  experimental CLI flags
- known_limitations.mdx: fix filter depth (2000->200), task DB
  size (10->20GiB)
- webhooks.mdx: fix payload format to nested JSON, add batchUid
- snapshots.mdx: fix first snapshot timing, wrong link anchor
- experimental_features_overview.mdx: add 5 missing features,
  remove non-existent vector store entry
- algolia_migration.mdx: fix facets mapping, batch size, separator
  support
- prefix.mdx: add missing prefixSearch setting
- datatypes.mdx: update charabia version link
- install_meilisearch_locally.mdx: update Docker tag v1.16->v1.37
- updating.mdx: fix heading level
- faq.mdx: fix invalid JSON trailing comma
Entire-Checkpoint: 9c68757644a6
Add 30 new pages from documentation_fork:
- resources/comparisons/ (9 files): individual product comparisons
- resources/demos/ (13 files): feature showcase and use case demos
- resources/self_hosting/deployment/ (4 files): AWS, GCP, Azure, DigitalOcean
- resources/self_hosting/security/master_api_keys.mdx
- resources/internals/bucket_sort.mdx, hannoy.mdx
- resources/migration/previous_docs_version.mdx

Restructure self_hosting to use subdirectories:
- http2_ssl.mdx → security/http2_ssl.mdx
- ram_multithreading_performance.mdx → performance/ram_multithreading.mdx

Update docs.json nav with Demos, Comparisons groups and
Deployment, Security, Performance subgroups. Fix fork-style
links (/products/, /getting_started/) to match current repo
paths. Fix broken glossary links in hannoy.mdx.

Entire-Checkpoint: 9c68757644a6
- Fix multi-line link in optimize_indexing_performance.mdx
- Fix grammar: "does not store nor keeps" → "does not store or keep"
- Fix attribute limit: 65,535 → 65,536 to match known_limitations
- Fix grammar: "integrate easily Meilisearch in" → "easily integrate Meilisearch into"
- Fix casing: "MacOS" → "macOS"
Entire-Checkpoint: 9c68757644a6
- Fix sudo cat → sudo tee for privileged file writes (azure, gcp)
- Add systemctl daemon-reload before enabling service (digitalocean)
- Use real domain hint in nginx server_name (digitalocean)
- Update bucket_sort ranking rules to v1.36+ (attributeRank/wordPosition)
- Fix bucket_sort typo example (correct bucket numbering) and HTTP method
- Remove hard-coded prices in elasticsearch comparison
- Qualify single-node dataset guidance in elasticsearch comparison
- Clarify analytics scope in typesense comparison
- Fix extra pipe in alternatives table
- Fix link destination in documents.mdx
- Drop misleading _geoRadius analogy in ecommerce demo
- Clarify demo repos location in overview
- Remove double space in previous_docs_version
- Add first-snapshot timing note to configuration reference

Entire-Checkpoint: 9c68757644a6
- Meilisearch license: MIT → MIT (CE) / BUSL-1.1 (EE) dual-licensing
- Meilisearch now supports sharding & replication (not single-node only)
- Meilisearch embedders: added Ollama, expanded provider list
- Elasticsearch: triple-licensed AGPLv3/SSPL/ELv2, GPU support via EIS, 350+ integrations
- Typesense: now has built-in embedding generation and Stopwords API
- Pinecone: usage-based pricing, Integrated Inference
- Qdrant: Cloud Inference for built-in embeddings
- MongoDB: search now available on Community Edition 8.2+, Voyage AI integration
- Updated GitHub stars (Meilisearch 56K, Typesense 25K, Elasticsearch 76K)
- Updated community stats (Discord 3K+, contributors 200+)

Entire-Checkpoint: 9c68757644a6
Restructure the Resources nav for better readability and cloud-first ordering:
- Add "Getting started" group (SDKs, FAQ, Language) at the top
- Move Migration up to 2nd position for high-intent users
- Move Self-hosting below Comparisons (cloud-first)
- Flatten Demos (remove Use cases/Feature showcases sub-groups)
- Rename "Internals" to "Under the hood", "Help" to "Project info"
- Merge duplicate comparison_to_alternatives page into comparisons/alternatives

Fix 14 broken internal links verified against the live sitemap:
- search/perform-a-multi-search → multi-search/perform-a-multi-search
- indexes/list-indexes → indexes/list-all-indexes
- settings/delete-searchableattributes → settings/reset-searchableattributes
- settings/get-localized-attributes → settings/get-localizedattributes
- settings/get-prefix-search → settings/get-prefixsearch

Entire-Checkpoint: 9c68757644a6
Deployment guides (AWS, Azure, GCP):
- Add missing systemctl daemon-reload before enabling Meilisearch service
- Fix sudo cat to sudo tee for Nginx config file creation (AWS)
- Use server_name your_domain instead of catch-all _ for certbot compatibility

Other fixes:
- Fix ElasticSearch capitalization to Elasticsearch in alternatives.mdx
- Fix grammar in configuration.mdx option descriptions
- Fix "configure enable HTTPS" wording in DigitalOcean guide
- Pin algoliasearch@4 in migration guide (v5 breaks examples)

Entire-Checkpoint: 9c68757644a6
…l hybrid search

Expand the language support section from a short bullet list to a detailed
table covering all 15 language/script families in Charabia, and add a new
section on multilingual hybrid search with embedding model recommendations.

Entire-Checkpoint: 9c68757644a6
- Lead with Cloud quick start instead of self-hosting links
- Add new questions: Cloud vs self-host, limits, updating, multi-tenancy
- Condense hosting requirements from ~60 lines to ~15, link to perf guide
- Fix ElasticSearch typo, broken docs.meilisearch.com URL in error example
- Improve SEO description, remove marketing-speak, tighten question titles

Entire-Checkpoint: 9c68757644a6
…grade path, boot time

Highlight Meilisearch differentiators in the alternatives comparison:
- Vector Store now mentions built-in DiskANN
- Monitoring Dashboard includes Prometheus metrics endpoint for Grafana
- Upgrade path: only changed data is reindexed (not full reindex)
- New Boot time row: Meilisearch is instant, Typesense reindexes on boot
Entire-Checkpoint: 9c68757644a6
…er mappings

Reorganize the flat comparison table into 7 categorized sections (query/pagination,
filtering/sorting, geo search, highlighting, attributes/ranking, typo/language,
AI/vector search). Add missing mappings for pagination, geo filters, highlighting
tags, ranking score, attributesToSearchOn, locales, hybrid search, and personalize.
Add Type column clarifying param vs setting distinction. Fix duplicate
attributesToRetrieve row and update relevancyStrictness from "Not Supported" to
rankingScoreThreshold.

Entire-Checkpoint: 9c68757644a6
Step-by-step guide covering data export (Point in Time API), data
preparation (flattening nested objects, geo field conversion), import
via Meilisearch JS client, and comprehensive comparison tables for
settings, query DSL, and API methods. Also links the guide from the
Elasticsearch comparison page.

Entire-Checkpoint: 9c68757644a6
Wrap all code blocks in CodeGroup tabs with JavaScript, Python, and
Ruby examples for the Algolia and Elasticsearch migration guides.
Covers client setup, data export, data preparation, Meilisearch
import, and complete finished scripts in all three languages.

Entire-Checkpoint: 9c68757644a6
Step-by-step guide covering data export (Scroll API), vector strategy
(re-embed vs keep existing), data preparation, import, and embedder
configuration. Includes comprehensive comparison tables for concepts,
indexing, search parameters, and API methods. Query examples show
vector search, hybrid search, filtered search, geo search, and faceted
search. Code examples in JavaScript, Python, and Ruby.

Entire-Checkpoint: 9c68757644a6
Points are vector-first (vector + metadata), Documents are
content-first (fields + optional vectors). Also note that importing
vectors is optional since Meilisearch can auto-generate them.

Entire-Checkpoint: 9c68757644a6
Rewrite query comparison to use natural language queries instead of raw
vectors, emphasizing that Meilisearch handles embedding automatically.
Add full-text search example. Move userProvided embedder option into an
Accordion as a secondary alternative. Update What you gain section to
lead with no-more-client-side-embedding benefit.

Entire-Checkpoint: 9c68757644a6
MongoDB guide covers data export via find(), ObjectId conversion, geo
data transformation, aggregation pipeline to REST API comparison, and
Atlas Vector Search to hybrid search migration with auto-embedder.

PostgreSQL guide covers data export via SELECT, tsvector/tsquery to
automatic indexing comparison, pgvector to auto-embedder migration,
PostGIS to _geo conversion, and a keeping-data-in-sync section for
the recommended PostgreSQL + Meilisearch pattern.

Both guides include JavaScript, Python, and Ruby code examples, full
settings/query comparison tables, and side-by-side query examples.
Also links both guides from their respective comparison pages.

Entire-Checkpoint: 9c68757644a6
Step-by-step guide covering data export via Supabase client (.select
with .range pagination), data preparation (tsvector/embedding column
removal, PostGIS geo conversion), and import into Meilisearch.

Includes comparison tables mapping Supabase client methods, Supabase
Vector (pgvector), and underlying PostgreSQL concepts to Meilisearch
equivalents. Query comparison shows Supabase JS client vs Meilisearch
REST API for full-text, filtered, sorted, vector, faceted, and geo
search.

Covers four sync strategies: Database Webhooks, Edge Functions,
Realtime subscriptions, and periodic batch sync. Promotes auto-embedder
as replacement for the entire Supabase Vector pipeline (Edge Functions,
embedding columns, RPC functions, pgvector indexes).

Entire-Checkpoint: 9c68757644a6
Explains how Meilisearch's multi-criteria bucket sort ranking system
works and why it produces better results than BM25 for application
search. Covers the seven default ranking rules, the sequential
evaluation pipeline, and concrete comparisons for typo tolerance, word
proximity, field importance, prefix search, and debuggability. Includes
trade-offs section and hybrid search integration.

Entire-Checkpoint: 9c68757644a6
PostgreSQL full-text search uses ts_rank (term frequency) and
ts_rank_cd (cover density), not BM25. Separate the two models in the
explanation and update the summary table to reflect the differences
(proximity handling, prefix syntax, semantic search approaches).

Entire-Checkpoint: 9c68757644a6
- Reorder nav: Self-hosting, Comparisons, Migration, Demos, Under the Hood, Other Resources
- Rename "Project Info" to "Other Resources", move SDKs + FAQ there
- Move Language page into Under the Hood
- Fix factual errors in comparisons: Algolia federated search, index size,
  filtering; Typesense analytics, boot time, 1-click deploy, contributors,
  ranking score details; OpenSearch governance; PostgreSQL CJK support;
  GPL-3 characterization
- Fix Algolia migration: Python SDK version 3.x→4.x, settings syntax errors
Entire-Checkpoint: 9c68757644a6
- Rewrite Where2Watch, E-commerce, SaaS, Image Search, Music, Geosearch pages
  to highlight their actual key features (hybrid search, multi-tenancy, multimodal, etc.)
- Add Personalized Search and Search Playground as new demo pages
- Add screenshots for E-commerce, Image Search, Music, Geosearch, Personalized, Playground
- Trim less important demos (MoMA, Nobel, Tenant Tokens, Typo, Voice, RubyGems) to concise format
- Reorganize overview into Featured and More demos sections

Entire-Checkpoint: 9c68757644a6
- Move cloud_quick_start to getting_started/first_project in Getting Started tab
- Move documents, indexes, primary_key to resources/internals (Under the hood)
- Move search_preview to resources/self_hosting
- Update all internal links across 36 files
- Add redirects for all 5 moved pages

Entire-Checkpoint: 9c68757644a6
- Move basic_security, resetting_master_key, protected_unprotected to
  resources/self_hosting/security/
- Remove differences_master_api_keys (duplicate of master_api_keys)
- Update all internal links across 31 files
- Add redirects for all 4 moved/removed pages
- Fix redirect chain for /reference/features/authentication

Entire-Checkpoint: 9c68757644a6
…ront-end page

- Move guides/running_production and guides/docker into resources/self_hosting
- Remove guides/front_end/front_end_integration (duplicated in getting started)
- Add redirects for all three moved/removed pages

Entire-Checkpoint: 9c68757644a6
Reorganize 23 self-hosting pages into logical groups following
overview → getting started → deep dive → how-to → reference pattern:

- Add overview pages for self-hosting, deployment, security, configuration, and data backup
- Split 835-line configuration.mdx into overview (concepts) and reference (options)
- Group installation pages under getting_started/ (quick_start, install_locally, docker, search_preview)
- Merge supported_os content into install_locally page
- Evolve snapshots_vs_dumps into enriched data_backup/overview
- Create Advanced group for performance, webhooks, and GPU guides
- Reorder security pages: concepts before tutorials
- Add deployment overview with production checklist
- Update 55+ internal links across 28 files
- Add 8 redirects for backward compatibility

Entire-Checkpoint: 9c68757644a6
Lead with Meilisearch strengths, add sharding and conversational
search differentiators, fix embedding description to reflect
built-in local generation via Candle plus any HTTP API provider.

Entire-Checkpoint: 9c68757644a6
Reframe the page around the DiskANN concept as the broader approach,
with Hannoy as Meilisearch's implementation. Adds explanation of
disk-backed ANN principles and why they matter vs in-memory solutions.

Entire-Checkpoint: 9c68757644a6
- Rewrite overview: remove "when to use" section, remove "early development"
  warnings, add Perplexity comparison, clarify built-in RAG concept, document
  3 use cases (chat, summarization, RAG pipelines)
- Split getting started into 3 pages: setup (shared), chat interface,
  one-shot summarization
- Create dedicated index chat settings page with description, document
  template, searchParameters documentation
- Create advanced/reduce_hallucination page covering system prompt
  engineering, few-shot prompting, and Cloud guardrails
- Move chat tooling reference to advanced/ with full request examples
  in cURL, JavaScript Fetch, OpenAI SDK, and Vercel AI SDK tabs
- Add OpenAI SDK and Vercel AI SDK code tabs to all chat completions
  request examples across all pages
- Fix configure_chat_workspace: remove invented "model" field, add
  Azure OpenAI fields, document prompts sub-fields, separate index
  settings into own page
- Remove all "early development" and "experimental" warnings
- Remove all master key references from conversational search docs
- Fix OpenAI provider example (remove unnecessary baseUrl)
- Update all internal links and add redirects for moved pages

Entire-Checkpoint: 9c68757644a6
@qdequele
Copy link
Member Author

Manual content review

Per-capability review: verify content accuracy, code samples against OpenAPI spec, consistent structure, remove outdated info.

  • Full-text search
  • Hybrid search (semantic + hybrid)
  • Geo search
  • Conversational search (in progress)
  • Multi-search
  • Filtering, sorting & faceting
  • Personalization
  • Analytics
  • Security
  • Teams
  • Indexing

…w-to

Network/sharding content belongs in the self-hosting section, not multi-search.
Replace it with a new how-to guide showing how to combine text and image
semantic search using multiple embedders in federated multi-search.

Entire-Checkpoint: 9c68757644a6
Analytics: add search ID hierarchy, data retention, custom fields,
geographic tracking, auto-generated user IDs, clean up Cloud references.

Personalization: replace "plain-text description" with "user profile",
remove self-hosting references and enable section, add "yet" for
automated profile generation.

Entire-Checkpoint: 9c68757644a6
- Remove all master key mentions from security pages
- Move SSO documentation from security to teams capability
- Create "Tasks and batches" group in indexing capability
- Rename "use_foreign_keys" to "document_relations"
- Remove inspect_index_fields page
- Update all internal links and add redirects

Entire-Checkpoint: 9c68757644a6
qdequele added 18 commits March 21, 2026 18:58
New pages:
- filtering_sorting_faceting: search_and_filter_together, handle_large_facet_cardinality
- indexing: import_large_datasets, design_primary_keys, delete_documents_at_scale
- conversational_search: handle_errors_and_fallbacks, optimize_chat_prompts

Content improvements across 16 existing pages:
- hybrid_search: re-embedding cost warning, Base64 image guide, composite embedder clarity, when NOT to use hybrid
- personalization: context regeneration strategies, positive-only signals clarification
- security: immutable API key fields warning
- filtering: facet collapse warning with disjunctive facets link
- full_text_search: multi-language stop words strategy
- indexing: compaction disk space requirements, document relations feature flag link
- analytics: prefer payload userId over X-MS-USER-ID header
- teams: SSO default role, billing clarification
- conversational_search: Cloud UI setup instructions
Entire-Checkpoint: 9c68757644a6
… and configs

Entire-Checkpoint: 9c68757644a6
Entire-Checkpoint: 9c68757644a6
… page

Fixes #3320, fixes #3516

Entire-Checkpoint: 9c68757644a6
Clarify tenant tokens are search-only, add XSS sanitization guidance,
reference jwt.io for debugging, compare with Algolia secured keys and RLS.

Fixes #3437, fixes #3160, fixes #1018, fixes #2893

Entire-Checkpoint: 9c68757644a6
…nd _vectors field

Fixes #3084, fixes #3229, fixes #3178, fixes #3049

Entire-Checkpoint: 9c68757644a6
…TS docs

Fixes #2958, fixes #3203

Entire-Checkpoint: 9c68757644a6
… queue compaction

New capability section:
- Replication and sharding overview with architecture diagram and feature compatibility table
- Set up a sharded cluster step-by-step guide
- Configure replication for high availability (patterns, failover, read scaling)
- Manage the network (add/remove remotes, shard filters)

New indexing pages:
- Edit documents with functions (Rhai): examples, context, filter, syntax reference
- Compact task queue: DELETE /tasks with filters, cleanup strategies

Config reference updates:
- Add MEILI_EXPERIMENTAL_REMOTE_SEARCH_TIMEOUT_SECONDS
- Add MEILI_EXPERIMENTAL_DISABLE_FID_BASED_DATABASES_CLEANUP
- Add Enterprise Edition note on S3 snapshot options
- Remove duplicate Allowed IP Networks entry

Old sharding.mdx replaced with stub pointing to new capability pages.
Existing redirects updated to point to new overview.

Entire-Checkpoint: 9c68757644a6
Move replication/sharding pages from capabilities/ to resources/self_hosting/sharding/
with dedicated nav group. Wrap all code samples in CodeGroup and replace MASTER_KEY
with MEILISEARCH_KEY. Add redirects for old paths.

Entire-Checkpoint: 9c68757644a6
Entire-Checkpoint: 9c68757644a6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment